如何查找进程的磁盘路径

如何查找进程的磁盘路径

如果某个进程正在运行,我如何使用终端上的命令找到其磁盘路径? 在我的例子中,一个进程 synergy 正在运行,我想在磁盘上找到它

ps -ef 

显示其他进程的路径,但不显示这个进程的路径。

答案1

如果您知道进程的 PID,则可以检查其/proc条目的内容,特别是exe文件:

$ ls -l /proc/$$/exe   
lrwxrwxrwx 1 muru muru 0 Apr 17 19:41 /proc/13339/exe -> /usr/bin/zsh
$ sudo ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 Apr 17 17:40 /proc/1/exe -> /usr/lib/systemd/systemd

我记得ps -ef报告的是进程的参数(从 开始argv[0],即按原样调用的命令),但进程可以自由重写其参数。因此ps -ef可能不准确。

答案2

你写:

如果某个进程正在运行,我如何使用终端上的命令找到其磁盘路径? 在我的例子中,一个进程 synergy 正在运行,我想在磁盘上找到它

打开终端并运行以下命令,具体取决于您要如何操作。我使用协同作用因为你提到了它:

  • 如果你真的想使用附言,那么您就可以使用此命令。

    ps -o command= -p "$(ps -C synergy -o pid=)" | xargs which
    
  • 如果你想知道可执行文件的位置,请使用此命令

    which synergy
    

相关内容