Недавно у меня возникла проблема, когда сценарий 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, если он доступен для вашего дистрибутива, может быть хорошим вариантом.