如果磁盘上有同一个应用程序的多个副本,但只有一个在运行,正如我所看到的ps
,我怎么知道绝对路径来区别于其他的吗?
答案1
% sudo ls -l /proc/PID/exe
例如:
%ps -auxwe | grep 24466 root 24466 0.0 0.0 1476 280 ? S 2009 0:00 监督 sshd %须藤LS -l / proc / 24466 / exe lrwxrwxrwx 1 root root 0 2 月 1 日 18:05 /proc/24466/exe -> /package/admin/daemontools-0.76/command/supervise
答案2
使用:
pwdx $pid
这将为您提供 pid 的当前工作目录,而不是其绝对路径。
通常该which
命令会告诉您哪个命令是从 shell 调用的:
#> which vlc
/usr/bin/vlc
答案3
一种方法是 ps -ef
答案4
lsof
是一个选项。您可以尝试以下方法:
lsof -p PROCESS_ID
这将列出该进程打开的所有文件,包括可执行文件的实际位置。然后可以添加更多awk
、等cut
,grep
以查找您要查找的信息。
举个例子,我执行了以下命令来识别我的“java”进程来自哪里:
lsof -p 12345 | awk '{print $NF}' | grep 'java$'