Jad*_*ias 116 linux process ps
如果我在磁盘上有同一个应用程序的多个副本,并且只有一个正在运行,如我所见ps,我如何知道将其与其他应用程序区分开来的绝对路径?
aki*_*ira 144
% sudo ls -l /proc/PID/exe
Run Code Online (Sandbox Code Playgroud)
例如:
% ps -auxwe | grep 24466 根 24466 0.0 0.0 1476 280 ? S 2009 0:00 监督sshd % sudo ls -l /proc/24466/exe lrwxrwxrwx 1 root root 0 Feb 1 18:05 /proc/24466/exe -> /package/admin/daemontools-0.76/command/supervise
小智 26
用:
pwdx $pid
Run Code Online (Sandbox Code Playgroud)
这为您提供了 pid 的当前工作目录,而不是其绝对路径。
通常which命令会告诉你哪个是从 shell 调用的:
#> which vlc
/usr/bin/vlc
Run Code Online (Sandbox Code Playgroud)
小智 7
lsof是一个选项。您可以尝试如下所示:
lsof -p PROCESS_ID
Run Code Online (Sandbox Code Playgroud)
这将列出该进程打开的所有文件,包括可执行文件的实际位置。然后可以添加更多awk、cut等grep来查找您正在寻找的信息。
例如,我执行了以下命令来识别我的“java”进程来自何处:
lsof -p 12345 | awk '{print $NF}' | grep 'java$'
Run Code Online (Sandbox Code Playgroud)
ps auxwwwe
Run Code Online (Sandbox Code Playgroud)
来源:
https://serverfault.com/questions/62322/getting-full-path-of-executables-in-ps-auxwww-output
| 归档时间: |
|
| 查看次数: |
239662 次 |
| 最近记录: |