次のコードは、メインプロセスをフォークし、バックティックでコマンドを実行します。スクリプトの最後のkillは、フォークされたプロセスのみを強制終了しますが、それは子プロセスではありません(つまり、sleepコマンド)。子プロセスを持つRubyでフォークプロセスを強制終了する
pid = fork do
Thread.new do
`sleep 20`
end
end
sleep(1)
Process.kill("HUP",pid)
プロセスツリーを検索以外の(フォークプロセス内のスレッドでバッククオートコマンドによって生成された)すべての子プロセスを殺すために方法はありますか?シーンの背後
ですから、答えは「いいえ」です。プロセスツリーを検索する必要があります – jhj