Como verificar quais processos específicos (scripts Python) estão em execução?

12

Usando o comando 'top', vejo 2 scripts python em execução. No entanto, como verifico seus nomes ou diretório / local? Quero identificá-los para que eu possa ver o que está funcionando corretamente e o que não está.

Do utilizador
fonte
1
lsof -p $PIDseria um bom começo. $PIDtambém pode ser uma lista de PIDs delimitada por vírgulas. Além disso, toneladas de dados serão expostas /proc/$PID/.
DopeGhoti

Respostas:

18

Você pode obter uma lista de processos python usando pgrep:

pgrep -lf python

Isso, no entanto, não lista toda a linha de comando. Se você possui uma versão recente, pgreppode usar -a para fazer isso:

pgrep -af python

Caso contrário, você pode 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
fonte
3

Eu costumo usar ps -fA | grep pythonpara ver quais processos estão em execução.

Isso fornecerá resultados como os seguintes:

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

O CMDmostrará quais scripts python você está executando, embora não forneça o diretório do script.

blaklaybul
fonte