我有很多正在运行的已停止运行的sh
进程数。当我执行此命令来计算它们的数量时:
ps -ax | grep sh | wc -l
它说我目前有 2655 个。它们会占用任何系统资源吗?我不知道它们来自哪里,这是 ps 命令给我的唯一数据:
32637 ? Z 0:00 [sh] <defunct>
有人知道如何阻止这种情况发生,以及如何终止这些进程?
答案1
lsof -p 32637
将为您提供有关该进程的更多信息。查看导致此问题的父进程有助于防止此问题发生。
答案2
它们会消耗系统资源吗?
我相信,除了流程表中的一个插槽以外,没有什么其他内容。
如何阻止这种情况发生?
确定产生它们的父进程,并找出为什么它不等待子进程死亡(因此不收获它们)
如何终止这些进程?
你不能杀死已经死去的东西。如果父级被杀死,init 最终应该继承它们并为你收割它们。
答案3
如何终止这些进程?
这将终止所有已停止的进程
ps -ef | grep defunct | grep -v grep | cut -b8-20 | xargs kill -9