Comment vérifier quels processus spécifiques (scripts Python) sont en cours d'exécution?


12

En utilisant la commande 'top', je peux voir que 2 scripts python sont en cours d'exécution. Cependant, comment puis-je vérifier leurs noms ou leur répertoire / emplacement? Je veux les identifier afin de voir ce qui fonctionne correctement et ce qui ne fonctionne pas.


1
lsof -p $PIDserait un bon début. $PIDpeut également être une liste de PID délimitée par des virgules. De plus, des tonnes de données seront exposées dans /proc/$PID/.
DopeGhoti

Réponses:


18

Vous pouvez obtenir une liste des processus python en utilisant pgrep:

pgrep -lf python

Cependant, cela ne répertorie pas la ligne de commande entière. Si vous avez une version récente de pgrepvous pouvez utiliser -a pour ce faire:

pgrep -af python

Sinon, vous pouvez utiliser /proc:

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

3

J'utilise habituellement ps -fA | grep pythonpour voir quels processus sont en cours d'exécution.

Cela vous donnera des résultats comme les suivants:

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

Le CMDvous montrera quels scripts python vous exécutez, bien qu'il ne vous donnera pas le répertoire du script.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.