2016-07-14 12 views
1

Wie kann ich die Prozessnummern einer ausgegebenen Multithread-Anwendung abrufen? Ich meine, ich suche nach einem Bash-Skript, das nach dem Ausführen eines Befehls die Prozessnummern in eine Liste stellt. Zum Beispiel:Ermitteln der Prozessnummern einer Multithread-Anwendung

#!/bin/bash 
./run_program -nt 4 
# find the list of PIDs 
+0

'pstree -p $ SOME_PID' – xxfelixxx

+0

@xxfelixxx' pstree -p $$ '' – 123

+0

ptree' zeigt eine grafische Ansicht. Ich möchte nur die PIDs (die Zahlen) – mahmood

Antwort

2

I pgrep zur Überprüfung des Prozess-IDs verwenden würde.

Wenn Sie nur bei Kind PID des aktuellen Prozesses, können Sie sich die -P Option:

pgrep -P $$ 
1

Unter der Annahme run_program gleichen Weg in ps pid Liste ausführen erstellt.

ARRAY=($(ps -fe | grep run_program | grep -v grep | awk '{print $2}' ORS=' ')) 

und Sie können in Beispiel Zugang

echo ${ARRAY[2]}