我正在调试一段看起来像这样的代码:
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
会杀死fork而不是exec启动的进程。
如何终止fork和exec进程?
答案 0 :(得分:0)
您正在向可能阻止TERM的进程发送TERM信号。如果你用简单的东西替换它,比如睡觉'你会看到它可以被终止。