如果我有像下面这样的ps输出,是否有任何方法来确定文件系统上的“blah”? 对于我的特殊情况,-p指定应用程序应该在哪个端口上运行。
user 22913 22470 0 09:58 ? 00:00:06 ./blah -p 12345
我的问题基本上是否有可能find一个可执行文件的位置给定的应用程序的PID或端口。 正在使用的发行版是Redhat。
做任何这些提供的信息?
ps -ef
ps -eLf
ps axms
或者可能
ps -o cmd = -p $ PID
这可能更有用:
readlink -f / proc / $ PID / exe
?
像Bartbuild议的那样,
readlink -f /proc/$PID/exe
应该给你你的答案。
要build立在readlink上,另一种方法可能是readlink -f /proc/$PID/cwd
。 这将显示一个进程的当前工作目录,如果你已经执行了一个bash脚本,这个命令可以很方便,因为exe链接是/ bin / bash,参数是./blah。
作为一个更随机的信息,你可以cd / proc / $ PID。 如上所述,将会有cwd和exe的符号链接,以及进程根目录的位置(如果chroot是有用的), ls -l
将显示它们指向的位置,这实际上是readlink正在做的事情。
sudo / usr / sbin / lsof -p 22913