Jak sprawdzić, które konkretne procesy (skrypty Python) są uruchomione?

12

Za pomocą polecenia „top” widzę, że działają 2 skrypty python. Jak jednak sprawdzić ich nazwy lub katalog / lokalizację? Chcę je zidentyfikować, aby zobaczyć, co działa poprawnie, a co nie.

Użytkownik
źródło
1
lsof -p $PIDbyłby dobry początek. $PIDmoże być również rozdzieloną przecinkami listą PID. Również tony danych zostaną ujawnione /proc/$PID/.
DopeGhoti

Odpowiedzi:

19

Możesz uzyskać listę procesów python, używając pgrep:

pgrep -lf python

To jednak nie wyświetla całej linii poleceń. Jeśli masz najnowszą wersję pgrep, możesz użyć -a, aby to zrobić:

pgrep -af python

W przeciwnym razie możesz użyć /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
źródło
3

Zwykle używam, ps -fA | grep pythonaby zobaczyć, jakie procesy są uruchomione.

Zapewni to następujące wyniki:

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

CMDCię co Python skrypty zostały uruchomione pokazać, choć nie daje katalog skryptu.

blaklaybul
źródło