windows7下(从vista开始),CreateJobObject之后,SetInformationJobObject设置JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE标志,在vs下调试,job的行为是正常的,但是直接启动,行为就不正常了,子进程不会在job被关闭后自动退出,拿ProcExp.exe看,发现vs下启动,job的属性是正确的
如果直接运行,job的属性就不对了,会变成JOB_OBJECT_LIMIT_BREAKAWAY_OK
搜了一下,发现是PCA相关问题导致的,根据MSDN说法
https://msdn.microsoft.com/en-us/windows/compatibility/application-executable-manifest
把exe的manifest文件加入win7~win10的GUID即可,实测OK