Используя команду 'top', я вижу, что запущены 2 скрипта Python. Тем не менее, как я могу проверить их имена или каталог / местоположение? Я хочу идентифицировать их, чтобы я мог видеть, что работает правильно, а что нет.
Используя команду 'top', я вижу, что запущены 2 скрипта Python. Тем не менее, как я могу проверить их имена или каталог / местоположение? Я хочу идентифицировать их, чтобы я мог видеть, что работает правильно, а что нет.
Ответы:
Вы можете получить список процессов 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
Я обычно использую, 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 у вас запущены, но не даст вам каталог скрипта.
lsof -p $PIDбыло бы хорошим началом.$PIDтакже может быть разделенным запятыми списком идентификаторов PID. Кроме того, тонны данных будут выставлены в/proc/$PID/.