如何查找僵尸进程的原因?

如何查找僵尸进程的原因?

我有一个僵尸进程,正在尝试调查。

在 Linux 上,当某个进程死亡时,它不会立即从内存中全部删除 — 它的进程描述符会保留在内存中(进程描述符只占用很少的内存)。进程的状态变为 EXIT_ZOMBIE,并且进程的父进程会通过 SIGCHLD 信号收到其子进程已死亡的通知。然后,父进程应该执行 wait() 系统调用来读取死亡进程的退出状态和其他信息。这允许父进程从死亡进程中获取信息。调用 wait() 后,僵尸进程将完全从内存中删除。

这通常发生得非常快,所以你不会看到僵尸进程在你的系统上积累。但是,如果父进程没有正确编程并且从不调用 wait(),它的僵尸子进程将一直停留在内存中,直到它们被清理。

来源:https://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/

每次重启或启动后它都会出现。

andy      1235  0.0  0.0      0     0 ?        Z    07:25   0:00 [xbrlapi] <defunct>

进程 ID 为 1235。

有没有办法确定是哪个进程或程序导致了此问题?

答案1

从您大概的top输出来看: 图像处理

为盲人提供使用盲文显示器的访问软件 - xbrlapi

这似乎就是原因。

相关内容