Как проверить, какие конкретные процессы (скрипты Python) запущены?

12

Используя команду 'top', я вижу, что запущены 2 скрипта Python. Тем не менее, как я могу проверить их имена или каталог / местоположение? Я хочу идентифицировать их, чтобы я мог видеть, что работает правильно, а что нет.

пользователь
источник
1
lsof -p $PIDбыло бы хорошим началом. $PIDтакже может быть разделенным запятыми списком идентификаторов PID. Кроме того, тонны данных будут выставлены в /proc/$PID/.
DopeGhoti

Ответы:

18

Вы можете получить список процессов Python, используя pgrep:

pgrep -lf python

Это, однако, не перечисляет всю командную строку. Если у вас есть последняя версия, pgrepвы можете использовать -a для этого:

pgrep -af python

В противном случае вы можете использовать /proc:

IFS=" " read -ra pids < <(pgrep -f python)
for pid in "${pids[@]}"; do
    printf '%d: ' "$pid"
    tr '\0' ' ' < "/proc/$pid/cmdline"
    echo
done
Крис Даун
источник
3

Я обычно использую, ps -fA | grep pythonчтобы увидеть, какие процессы запущены.

Это даст вам следующие результаты:

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

Он CMDпокажет вам, какие скрипты Python у вас запущены, но не даст вам каталог скрипта.

blaklaybul
источник