Linux:列出磁盘上不再存在的可执行文件中 运行 的所有 运行ning 进程?
Linux: Listing all of the running processes that were run from executables that no longer exist on disk?
我正在尝试列出 Linux 中 运行 来自磁盘上不再存在的可执行文件的所有 运行ning 进程。
根据我的观察,/proc 文件系统包含 /proc/[pid]/exe 符号 link。但这仅在可执行文件存在时才存在。
有办法吗?
取决于内核(或 OS? - 我的是 3.16.7-21-desktop/OpenSUSE 13.2)这可能真的很简单,因为 link 源在原始 exe 已删除 - '(已删除)' 后缀附加到它:
$ ls -ld /proc/16415/exe
lrwxrwxrwx 1 dancorn at 0 May 25 10:48 /proc/16415/exe -> /tmp/sleep (deleted)
对于未重命名 symlink 的旧版本,如果它也未被删除(不一定非要删除),它只是一个损坏的 symlink,也相对而言易于检查:
$ python
>>> import os
>>> os.path.realpath('/proc/16415/exe')
'/tmp/sleep (deleted)'
>>> os.path.exists(os.path.realpath('/proc/16415/exe'))
False
我正在尝试列出 Linux 中 运行 来自磁盘上不再存在的可执行文件的所有 运行ning 进程。
根据我的观察,/proc 文件系统包含 /proc/[pid]/exe 符号 link。但这仅在可执行文件存在时才存在。
有办法吗?
取决于内核(或 OS? - 我的是 3.16.7-21-desktop/OpenSUSE 13.2)这可能真的很简单,因为 link 源在原始 exe 已删除 - '(已删除)' 后缀附加到它:
$ ls -ld /proc/16415/exe
lrwxrwxrwx 1 dancorn at 0 May 25 10:48 /proc/16415/exe -> /tmp/sleep (deleted)
对于未重命名 symlink 的旧版本,如果它也未被删除(不一定非要删除),它只是一个损坏的 symlink,也相对而言易于检查:
$ python
>>> import os
>>> os.path.realpath('/proc/16415/exe')
'/tmp/sleep (deleted)'
>>> os.path.exists(os.path.realpath('/proc/16415/exe'))
False