首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >杀死进程'[avconv] <defunct>‘

杀死进程'[avconv] <defunct>‘
EN

Stack Overflow用户
提问于 2014-02-27 19:53:09
回答 1查看 975关注 0票数 0

我有30多个进程'avconv‘(脚本中有一个bug ),通过这个命令,我可以找到以下进程:

代码语言:javascript
复制
Ps aux | grep '\[avconv\] <defunct>' 

但我不知道如何扼杀这些过程,有谁有办法扼杀这些过程?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-27 20:39:16

<defunct>进程是一个已经终止的进程,因此不能被终止,但是父进程尚未调用一个等待系统调用(waitwait3wait4waitpid等)。读取其退出状态。因此,进程信息由系统保留,以防父进程最终试图获得其状态。当父进程读取其退出状态时,此类进程将消失。

当父进程被杀死时,这些<defunct>进程也会消失,因为init进程将获得进程的所有权并获得(并放弃)其状态。

您可以通过确保发出与发出<defunct>调用一样多的wait系统调用来避免fork进程。

或者,正如J.F.Sebastian指出的那样,您也可以通过使用<defunct>将SIGCHLD信号处理程序设置为SIG_IGN (忽略信号),或者在注册SIGCHLD信号处理程序时使用SA_NOCLDWAIT标志(或者在使用SIG_DFL重置默认配置时)来避免sigaction进程。但是,在这种情况下,子程序的退出状态将不会提供给父级--它只是被丢弃。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22078948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档