
1 augustheart 2019-12-23 09:39:45 +08:00 没用过这个,不过研究一下能不能直接用 api 不行么? |
2 geelaw 2019-12-23 09:48:19 +08:00 via iPhone 根据 2017 年的讨论 boost 没有实现该功能。 https://github.com/klemens-morgenstern/boost-process/issues/66 你需要自行用 Windows job control 实现。 为什么 boost 没有该功能?一个简单的原因是 POSIX 中似乎没有这样的 API。 |
3 ysc3839 2019-12-23 10:05:04 +08:00 via Android 有个非正规的做法是把进程自己也加入 job 中,这样自己的子进程也会自动加入 job。 |
4 fengjianxinghun 2019-12-23 10:16:17 +08:00 @geelaw Linux 有 prctl(PR_SET_PDEATHSIG, SIGHUP, 0, 0, 0); |
5 geelaw 2019-12-23 10:24:49 +08:00 via iPhone @ysc3839 #3 这需要假设进程是用 CreateProcessEx 建立的(我觉得 boost 应该是),此外还要在 job 里不允许子进程离开 job。 @fengjianxinghun #4 我说的是 POSIX,不是 Linux。 |
6 shilyx 2019-12-23 10:32:36 +08:00 boost 几乎不可能包括 JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE 的功能,因为里面有些坑,boost 也没法从框架上解决。还是自己做吧,反正也是 windows 平台。 |