Wie kann ich überprüfen, welche bestimmten Prozesse (Python-Skripte) ausgeführt werden?

12

Mit dem Befehl 'top' kann ich sehen, dass 2 Python-Skripte ausgeführt werden. Wie überprüfe ich jedoch deren Namen oder Verzeichnis / Speicherort? Ich möchte sie identifizieren, damit ich sehen kann, was richtig läuft und was nicht.

Benutzer
quelle
1
lsof -p $PIDwäre ein guter start. $PIDkann auch eine durch Kommas getrennte Liste von PIDs sein. Außerdem werden Tonnen von Daten in verfügbar gemacht /proc/$PID/.
DopeGhoti

Antworten:

18

Sie können eine Liste der Python-Prozesse abrufen, indem Sie Folgendes verwenden pgrep:

pgrep -lf python

Dies listet jedoch nicht die gesamte Befehlszeile auf. Wenn Sie eine neuere Version von haben pgrep, können Sie -a verwenden, um dies zu tun:

pgrep -af python

Andernfalls können Sie Folgendes verwenden /proc:

IFS=" " read -ra pids < <(pgrep -f python)
for pid in "${pids[@]}"; do
    printf '%d: ' "$pid"
    tr '\0' ' ' < "/proc/$pid/cmdline"
    echo
done
Chris Down
quelle
3

Normalerweise ps -fA | grep pythonsehe ich , welche Prozesse ausgeführt werden.

Dadurch erhalten Sie folgende Ergebnisse:

UID     PID   PPID  C STIME TTY      TIME     BIN            CMD
user    3985  3960  0 19:46 pts/4    00:00:07 path/to/python python foo.py

Das CMDzeigt Ihnen, welche Python-Skripte Sie ausgeführt haben, obwohl es Ihnen nicht das Verzeichnis des Skripts gibt.

blaklaybul
quelle