linux - 我可以删除 [php] <defunct> 进程吗

标签 linux process kill-process

我制作了一个 PHP 脚本,它读取一些数据并使用 pctnl_fork 启动一个新进程来处理数据。子进程完成后,它们将保留为进程。 ps aux 向我显示进程列表,例如

demo       32229  0.0  0.0      0     0 pts/0    Z    12:23   0:00 [php] <defunct>
demo       32251  0.0  0.0      0     0 pts/0    Z    11:50   0:00 [php] <defunct>
demo       32284  0.0  0.0      0     0 pts/0    Z    11:50   0:00 [php] <defunct>
demo       32298  0.0  0.0      0     0 pts/0    Z    12:56   0:00 [php] <defunct>
demo       32303  0.0  0.0      0     0 pts/0    Z    11:50   0:00 [php] <defunct>
demo       32316  0.0  0.0      0     0 pts/0    Z    12:23   0:00 [php] <defunct>

我可以安全地终止这个进程,因为父进程仍在创建新进程来做一些工作吗?我知道我可能应该启动到 stderr 的命令管道(根据本主题 Insane crond behavior. keeps making defunct bash processes 现在为时已晚。 父进程在后台运行。

最佳答案

doing some research 之后,看来您必须终止父进程才能使这些已失效的子进程消失。

链接中最中肯的引述是“你不能杀死一个不存在的进程(又名僵尸),因为它已经死了。”

关于linux - 我可以删除 [php] <defunct> 进程吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110287/

相关文章:

powershell - 杀死从远程计算机上给定路径运行的多个进程

c# - 如何在安装程序之前终止进程?

linux - 如何在不使用 grep、sed awk、perl 的情况下将剪切和粘贴命令用作单行命令?

linux - 如何设置当前日期 + 14 天的 cron 表达式

cocoa - 使用 NSWorkspace 获取所有正在运行的进程

asp.net-mvc - 找不到 w3wp 进程

c++ - dlopen 中对 __dlopen 的未知引用

MYSQL导入(不同版本)

c - 隐藏 Execve 的终端输出

kill 命令后关闭文件