2021-02-09, 13:58
  #1
Medlem
Jag kör ett kommando från ett program som en subprocess, jag har namnet på kommandot som körs, nu vill jag komma åt dess PID från bash automatiskt, går det?

typ:
få en lista på alla processer som körs (top?)
gå igenom dem och kolla om den har rätt namn
ta fram PID och ändra prioritet osv

om nån kan hjälpa skulle jag uppskatta det.
Citera
2021-02-09, 14:03
  #2
Medlem
Asmodeusvults avatar
ps aux | grep -i processens namn
Citera
2021-02-09, 14:20
  #3
Medlem
Citat:
Ursprungligen postat av Asmodeusvult
ps aux | grep -i processens namn
Och så lite cut eller awk för att få ut PID.
Citera
2021-02-09, 14:27
  #4
Medlem
JohannesSnajdares avatar
Annars om du vill få ut PID i samma bash som startar subprocessen så kan du läsa ut den med $! direkt efter du spawnat den.
Citera
2021-02-09, 15:01
  #5
Moderator
vhes avatar
Citat:
Ursprungligen postat av Asmodeusvult
ps aux | grep -i processens namn

Citat:
Ursprungligen postat av Kringelikrok
Och så lite cut eller awk för att få ut PID.

Eller pgrep, för ett aningen smidigare interface. På system som har det programmet installerat.
Citera
2021-02-09, 17:37
  #6
Medlem
tack! fick det att funka med både awk och pgrep, pgrep var enklast.
Citera
2021-02-09, 18:44
  #7
Medlem
Kolla innehållet i $$ och $!

De är variabler som sätts till PID till innevarande och senaste subshellet i ett skript

Kod:
#!/bin/sh

sleep 10 &
ps -q $$
ps -q $!
wait
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in