我有一个xmms2d
进程正在运行,但是有两个可能的可执行文件(在不同的目录中,都在可执行路径中)可能会产生它。我怀疑其中一个已损坏,因为有时该程序有效,有时无效。现在运行的进程有效,所以我想删除(或重命名)另一个。
ps ax|grep "xmms"
返回8505 ? SLl 2:38 xmms2d -v
没有路径信息。给定 PID,我能找出它是从/usr/bin/xmms2d
还是运行的/usr/local/bin/xmms2d
吗?
谢谢!
Mik*_*kel 23
尝试这个:
ls -l /proc/8505/exe
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想解析 的输出ls
,请执行以下操作:
readlink /proc/8505/exe
Run Code Online (Sandbox Code Playgroud)
或者
realpath /proc/8505/exe
Run Code Online (Sandbox Code Playgroud)
如果您运行的是 Solaris,则该方式与建议的 Linux 方式略有不同:
$ for i in $(pgrep bash)
do
printf "%6d %s\n" $i $(readlink /proc/$i/path/a.out)
done
577 /usr/bin/bash
11247 /usr/bin/bash
13921 /usr/bin/bash
13992 /tmp/bash
Run Code Online (Sandbox Code Playgroud)
如果您想知道正在运行的进程的当前工作目录,您可以使用:
pwdx $(pgrep xmms)
Run Code Online (Sandbox Code Playgroud)
例如:
$ pwdx $(pgrep ksh)
2904: /home/jlliagre
2906: /home/jlliagre
3844: /tmp
Run Code Online (Sandbox Code Playgroud)