作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
有没有办法调用CreateProcess这样杀死父进程会自动杀死子进程?
也许使用 Create Process Flags ?
编辑
解决方案是创建一个作业对象,将父级和子级都放在作业对象中。当他的 parent 被杀时, child 也被杀了。我从这里得到了代码: Kill child process when parent process is killed注意@wilx 关于继承句柄的评论。
最佳答案
将作业用作 Neil says恕我直言是最好的方法。您可以通过设置 JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE
使子进程在拥有作业的进程死亡时被杀死。在作业对象上使用 SetInformationJobObject()
.当您的父进程退出/死亡时,作业对象句柄将关闭。为此,作业句柄不被子进程继承是很重要的。如果您还想跟踪孙子进程,那么您必须创建暂停的子进程,将它们添加到您的作业对象中,然后才让它们运行。
关于c++ - CreateProcess 这样子进程在父进程被杀死时被杀死?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6259055/
我是一名优秀的程序员,十分优秀!