¿Cómo verificar qué procesos específicos (scripts de Python) se están ejecutando?

12

Usando el comando 'top' puedo ver que se están ejecutando 2 scripts de python. Sin embargo, ¿cómo verifico sus nombres o directorio / ubicación? Quiero identificarlos para poder ver qué funciona correctamente y qué no.

Usuario
fuente
1
lsof -p $PIDSería un buen comienzo. $PIDTambién puede ser una lista delimitada por comas de PID. Además, se expondrán toneladas de datos /proc/$PID/.
DopeGhoti

Respuestas:

18

Puede obtener una lista de procesos de Python usando pgrep:

pgrep -lf python

Esto, sin embargo, no enumera la línea de comando completa. Si tiene una versión reciente pgrep, puede usar -a para hacer esto:

pgrep -af python

De lo contrario, puede usar /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
fuente
3

Usualmente uso ps -fA | grep pythonpara ver qué procesos se están ejecutando.

Esto le dará resultados como los siguientes:

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

El CMDle mostrará qué scripts de Python está ejecutando, aunque no le dará el directorio del script.

blaklaybul
fuente