c++ - CreateProcess 这样子进程在父进程被杀死时被杀死?

标签 c++ winapi process kernel32 win32-process

有没有办法调用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/

相关文章:

c - 运行多个 fork 进程并不断读取它们的标准,同时打印到它们的标准

c++ - 为什么我的 C++ 圆抗锯齿算法会给出不对称的结果?

java - 在 native c/c++ 代码中发生崩溃时,JVM 中的设置忽略 JRE 错误消息?

c++ - Win32 编辑控件为每个新行显示 '|' 类似符号

winapi - GetClipboardData(CF_TEXT) 在什么情况下会返回 NULL?

c++ - 如何将我的窗口投影为前台的事件窗口

.net - 如何在.NET 中等待另一个进程的状态?

c++ - 算法中的二叉树

c++ - 无法在 XmlHttpRequest 模块工作时获取断点(Javascript 引擎/XHR 请求)

python - 从 python 使用 linux 'screen' 命令