Windows - CreateProcess分离子

时间:2017-10-16 16:31:27

标签: windows process subprocess kill createprocess

我想创建一个与父进程分离的子进程,这样如果父进程退出,子进程将继续。我在Windows上工作并做到了这一点:

if(CreateProcess(program, arguments, NULL, NULL, FALSE, CREATE_DEFAULT_ERROR_MODE | CREATE_NO_WINDOW | DETACHED_PROCESS, NULL, NULL, &sinfo, &pinfo))
{
   CloseHandle(pinfo.hProcess);
   CloseHandle(pinfo.hThread);
}

在我的情况下,当孩子在后台执行时,父母继续跑步。如果我在终端中按Ctrl-C来杀死父级,则子级继续执行 - 按预期执行。但是,如果我在Window的任务管理器中杀死了父项,那么孩子也会被杀死。

为什么Ctrl-C与任务管理器中的查杀有区别?是否有任何方法可以确保孩子继续,即使父母在任务管理器中被杀?

0 个答案:

没有答案