终止ruby fork不会终止底层进程
我正在调试一段看起来像这样的代码:
pid = fork do STDERR.reopen("/dev/null") STDOUT.reopen("/dev/null") exec('some bash command that runs in the foreground') end at_exit do Process.kill("TERM", pid) Process.wait pid end
问题是Process.kill
会Process.kill
fork而不是使用exec启动的进程。
如何杀死fork和exec进程?
您正在向可能阻止TERM的进程发送TERM信号。 如果用简单的“睡眠”替换它,你会发现它可以被终止。