2016-07-07 20 views
1

Ich starte mehrere parallele Bash-Skripte (Geschwister) aus einem anderen Bash-Skript (Eltern). Wie komme ich am besten in die PIDs der anderen Geschwister?Bash - Get PIDs der Geschwister

Der Elternprozess kann ich mit

ps -p $$ -o ppid --no-heading 

bekommen, aber ich kann nicht herausfinden, wie es ist Prozesse Kind zu bekommen.

Antwort

2

Versuchen ps --ppid <parent-process-id> (oder) pgrep -P <parent-process-id>

Von der man Seite von ps

--ppid pidlist Auswahl nach übergeordnetem Prozess-ID. Dadurch werden die Prozesse mit der übergeordneten Prozess-ID in der Pidliste ausgewählt. Das heißt, es wählt Prozesse aus, die unter den in pidlist aufgeführten Kindern liegen.

Für pgrep

-P ppid, ... Nur Prozesse Spiel, dessen übergeordnete Prozess-ID aufgeführt ist.

+1

der Vollständigkeit wegen '' pgrep -P 'ps -p $$ -o ppid --no-heading'' oder' 'ps --ppid' ps -p $$ -o ppid --no-heading '-o" pid "--noheading'', um die Geschwister –

+1

oder besser' pgrep -P $ (ps -p $$ -o ppid --no-heading) 'oder' ps --ppid $ (ps -p $$ -o ppid - no-heading) -o "pid" - "Kopf", um die Geschwister zu bekommen –