Commit 3d66efa
authored
fix(machine): signal downcast causes gvproxy and vfkit/krunkit exit prematurely (#74)
这个 PR 修复了主进程收到 ctrl-C 信号向下广播信号导致 gvproxy 和 vfkit/krunkit 过早退出导致 DiskSync
失败的问题。
setpgid 将被调用进程的进程组 ID 设置为它自己的进程 ID,从而创建了一个新的进程组,被调用的进程成为了组长,当 signal
发生时,signal 则信号不会被传递到被调用进程,与此同时,ctx 仍能控制被调用进程何时结束(SIGKILL)。
https://pubs.opengroup.org/onlinepubs/009604599/functions/setpgid.html1 parent 1ef0b8b commit 3d66efa
2 files changed
+12
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
16 | 17 | | |
| 18 | + | |
| 19 | + | |
17 | 20 | | |
18 | 21 | | |
19 | 22 | | |
| |||
84 | 87 | | |
85 | 88 | | |
86 | 89 | | |
87 | | - | |
88 | | - | |
89 | 90 | | |
90 | 91 | | |
91 | 92 | | |
92 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
93 | 96 | | |
94 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
95 | 101 | | |
96 | 102 | | |
97 | 103 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
26 | 28 | | |
0 commit comments