查找从Linux启动进程的位置

如果我有像下面这样的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