在我的服务器上,我在生成的列表中看到了一个正在运行的进程ps aux
。使用这些选项ps
可以显示完整的命令。
检查命令得知可执行文件已被删除。
有没有简单的方法来找到所有这些过程?
答案1
如果你的find
支持-ls
,并且有一些已删除的可执行文件正在运行,那么这个命令
sudo find /proc -name exe ! -path "*/task/*" -ls 2>/dev/null | grep ' (deleted)$'
可能会生成如下结尾的一行:
… /proc/9956/exe -> /path/to/executable\ (deleted)
这意味着具有 PID 的进程9956
正在执行/path/to/executable
,现已被删除。
笔记:
-ls
POSIX 不要求这样做。您find
可能不支持它,或者它可能支持它,但会以不同的格式生成输出。- 名为“正在运行的现有可执行文件”的条目
anything (deleted)
将产生误报。