Назад | Перейти на главную страницу

Как мне указать абсолютный путь запущенных процессов?

Недавно у меня возникла проблема, когда сценарий perl потреблял ресурсы сервера. Я узнал, что это был Perl-скрипт, используя "top". Но он не дал путь к скрипту. И "пс" тоже.

Можно ли получить пути к текущим сценариям perl? Если да, то как?

Уточнение: мне не нужен путь к двоичному файлу perl, мне нужен путь к Perl-скрипту, который в настоящее время выполняет двоичный файл.

Сначала получите pid от ps aux или ps -ef (это второй столбец). Предположим, 42. Затем выполните (как root):

ls -l /proc/42/exe

Чтобы получить список автоматически, вы можете использовать что-то вроде этого:

for pid in `ps auxwww | grep perl | grep -v grep | awk '{print $2}'`; do ls -l /proc/$pid/exe; done

Вы всегда можете попытаться найти PL-файл в своей файловой системе (используя найти, найти, и т.д). Если у вас есть несколько файлов PL с одним и тем же именем, вам придется копать глубже: что-то вроде dstat, если он доступен для вашего дистрибутива, может быть хорошим вариантом.