GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie bekomme ich die Prozess-ID des Hintergrundprozesses?

Sie müssen die PID des Hintergrundprozesses speichern, wenn Sie ihn starten:

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

Sie können die Jobsteuerung nicht verwenden, da dies eine interaktive Funktion ist und an ein steuerndes Terminal gebunden ist. Ein Skript muss nicht unbedingt mit einem Terminal verbunden sein, daher ist die Jobsteuerung nicht unbedingt verfügbar.


Sie können den jobs -l verwenden Befehl, um zu einem bestimmten Job zu gelangenL

^Z
[1]+  Stopped                 guard

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

In diesem Fall ist 46841 die PID.

Ab help jobs :

-l Gibt die Prozessgruppen-ID und das Arbeitsverzeichnis der Jobs aus.

jobs -p ist eine weitere Option, die nur die PIDs anzeigt.


  • $$ ist die PID des aktuellen Skripts
  • $! ist die PID des letzten Hintergrundprozesses

Hier ist ein Beispielprotokoll einer Bash-Sitzung (%1 bezieht sich auf die Ordnungszahl des Hintergrundprozesses, gesehen von jobs ):

$ echo $$
3748

$ sleep 100 &
[1] 192

$ echo $!
192

$ kill %1

[1]+  Terminated              sleep 100

Linux
  1. So starten Sie den Linux-Befehl im Hintergrund und trennen den Prozess im Terminal

  2. Wie unterbreche ich einen Hintergrundprozess und bringe ihn in den Vordergrund?

  3. Wie erkennt ein Hintergrundprozess seine eigene Pid?

  4. So führen Sie den Rsync-Prozess im Hintergrund aus

  5. Wie erhalte ich einen Rückgabewert von CHILD PROCESS?

So beenden Sie einen Prozess in Linux

So erhalten Sie die CPU-Auslastung eines einzelnen Prozesses in Linux

So senden Sie Prozesse unter Linux an den Hintergrund

Wie bekomme ich PID nach Prozessname?

Wie man pgrep dazu bringt, die vollständigen Prozessinformationen anzuzeigen

Wie man einen gerade gestarteten Prozess pipi bekommt