GNU/Linux >> Znalost Linux >  >> Linux

Jak získat ID procesu na pozadí?

Musíte uložit PID procesu na pozadí v době, kdy jej spouštíte:

foo &
FOO_PID=$!
# do other stuff
kill $FOO_PID

Nemůžete použít řízení úloh, protože se jedná o interaktivní funkci a je spojeno s ovládacím terminálem. Skript nemusí mít nezbytně připojený terminál, takže řízení úlohy nemusí být nutně dostupné.


Můžete použít jobs -l příkaz pro přechod na konkrétní úlohuL

^Z
[1]+  Stopped                 guard

my_mac:workspace r$ jobs -l
[1]+ 46841 Suspended: 18           guard

V tomto případě je 46841 PID.

Od help jobs :

-l Nahlásit ID skupiny procesů a pracovní adresář úloh.

jobs -p je další možnost, která zobrazuje pouze PID.


  • $$ je pid aktuálního skriptu
  • $! je pid posledního procesu na pozadí

Zde je ukázkový přepis z relace bash (%1 odkazuje na pořadové číslo procesu na pozadí, jak je vidět z jobs ):

$ echo $$
3748

$ sleep 100 &
[1] 192

$ echo $!
192

$ kill %1

[1]+  Terminated              sleep 100

Linux
  1. Jak pozastavit a přenést proces na pozadí do popředí?

  2. Jak proces na pozadí poznat svůj vlastní PID?

  3. Jak spustit proces Rsync na pozadí

  1. Jak zajistím, aby můj webový server Golang běžel na pozadí?

  2. Jak získat ID procesu pro ukončení procesu nohup?

  3. Jak dostat ps do tiskové skupiny?

  1. Jak získat návratovou hodnotu z CHILD PROCESS?

  2. Jak získat pouze ID procesu v zadaném názvu procesu v linuxu?

  3. Jak přimět pgrep, aby zobrazoval úplné informace o procesu