当我登录到我的机器时出现此消息:
There is 1 zombie process.
Run Code Online (Sandbox Code Playgroud)
Mar*_* R. 43
没有什么可担心的:
僵尸
在 Unix 操作系统上,僵死进程或死进程是一个已经完成执行但在进程表中仍然有一个条目的进程,允许启动它的进程读取其退出状态。在这个术语丰富多彩的比喻中,子进程已经死亡但尚未收割。
当一个进程结束时,与其相关的所有内存和资源都被释放,以便其他进程可以使用它们。但是,进程表中的进程条目仍然存在。父母收到一个 SIGCHLD 信号,表明孩子已经死亡;这个信号的处理程序通常会执行等待系统调用,它读取退出状态并删除僵尸。然后可以重复使用僵尸进程 ID 和进程表中的条目。但是,如果父进程忽略 SIGCHLD,则僵尸进程将留在进程表中。在某些情况下,这可能是可取的,例如,如果父进程创建另一个子进程,它会确保不会为其分配相同的进程 ID。
来源:http : //wiki.answers.com/Q/What_is_Zombie_Process_and_Orphan_Process
小智 22
我能够按照本教程结束僵尸进程 - https://vitux.com/how-to-kill-zombie-processes-in-ubuntu-18-04/。
基本上:
1)识别僵尸进程:
ps axo stat,ppid,pid,comm | grep -w defunct
Run Code Online (Sandbox Code Playgroud)
2)杀死父进程:
sudo kill -9 <parent_process_number>
Run Code Online (Sandbox Code Playgroud)
如已接受的答案中所述,您的流程已完成执行但仍在流程表中:https : //serverfault.com/a/390216/48449
如果这只是一个过程,这应该不会造成伤害,但仍然不应该发生。如果有太多并且您没有重新启动或重新启动产生这些的父进程,您可能会达到允许的最大进程数并导致严重问题。
要确定担心是否合适以及僵尸属于哪个其他进程,这对我有用:
ps -elf --forest | grep -C5 '<[d]efunct>'
Run Code Online (Sandbox Code Playgroud)
如有必要,增加上下文行的数量以了解父进程,理想情况下修复该进程以使其“收获”其结束的子进程。
归档时间: |
|
查看次数: |
53571 次 |
最近记录: |