0
私のようなコードをデバッグしていますが終了しません:ルビーフォークを終了すると、基本的なプロセス
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
ではなく、幹部で開始されたプロセスであり、 。
フォークとexecプロセスを強制終了するにはどうすればよいですか?
forkされたプロセスは 'exec'edプロセスと同じです(それらは同じpidを持っています)、それらのうちの1つだけをkillすることはできません。 bashコマンドは他のプロセスを開始しますか? – matt
私の場合、bashコマンドはフォアグランドで 'solr'を起動します – Calin
execコマンドをスリープのように変更してみてください。bashコマンドがいくつかのシグナルを無視している可能性があります。 –