我正在做linux的工作。
例如:我有一个java应用程序,名为stackoverflow.java。现在进程名将由不同的系统来决定,但是程序名是stackoverflow.java。因此,输出应该是程序名,只给出运行程序的PID。
有一些命令正在满足部分需求,例如:
cat /proc/"PID"/cmdline -> --这将给出用给定的"PID“创建该进程的命令行参数。但是如果我们用不同的编程语言有不同的程序,那么运行这个程序的命令的格式就会不一样了。那么在这种情况下,如何从这个命令中提取出确切的程序名呢?
readlink -f /proc/"PID"/exe -> --这将给出与进程相关的可执行文件名,并使用给定的"PID“。但是有些进程没有可执行文件。在这种情况下,它不会返回任何东西。
事实上,我的工作规模很大。我希望找到服务器上运行的所有进程的应用程序名称(或源文件名或程序名)。因此,我不想为任何编程语言(如java、cpp、python等)专门编写任何代码。在这方面,请给我一些一般性的建议。
发布于 2017-06-27 14:57:35
用一个有效的<pid>试试这个,
/bin/cat /proc/<pid>/comm
这将给出可执行文件的名称。
/bin/ls -lt /proc/<pid>/exe
以上将给出可执行文件的路径。
https://unix.stackexchange.com/questions/373667
复制相似问题