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á.


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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.