如何列出正在运行的进程的绝对路径?

如何列出正在运行的进程的绝对路径?

我最近遇到了一个问题,一个 perl 脚本消耗了服务器资源。我使用“top”发现这是一个 perl 脚本。但它没有给出脚本的路径。“ps”也没有。

是否可以获取当前正在运行的 perl 脚本的路径?如果可以,如何获取?

澄清:我不需要 perl 二进制文件的路径,我需要二进制文件当前正在执行的 perl 脚本的路径

答案1

ps aux首先从或获取 pid 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

答案2

您可以随时尝试在文件系统上找到 PL 文件(使用寻找定位等)。如果你有多个同名的 PL 文件,你就得深入挖掘:类似统计信息如果适用于你的发行版,那么这可能是一个不错的选择。

相关内容