如果某个进程正在运行,我如何使用终端上的命令找到其磁盘路径? 在我的例子中,一个进程 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