如何知道正在运行的进程的绝对路径?

如何知道正在运行的进程的绝对路径?

如果磁盘上有同一个应用程序的多个副本,但只有一个在运行,正如我所看到的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、等cutgrep以查找您要查找的信息。

举个例子,我执行了以下命令来识别我的“java”进程来自哪里:

lsof -p 12345 | awk '{print $NF}' | grep 'java$'

相关内容