あるxtermがプロセスを実行する別のxtermを実行する状況があります。 私は何らかの種類のウォッチドッグを設定し、スタックされたプロセスの場合にはこれらのウィンドウをすべて終了したいと考えています。どのようにプロセスをすべてのchildernで終了させることができますか
私はこれを行うためにRubyを使用しています。最初のxtermがオープンされると、それはPIDになり、後でSIGTERMが送られると、最初のxtermウィンドウだけが消滅しますが、2番目のxtermウィンドウは消滅します。
それは簡単にIRBで再現することができます。
irb(main):002:0> cmd = "xterm -e xterm -e sleep 1000"
=> "xterm -e xterm -e sleep 1000"
irb(main):003:0> pid = Process.spawn(cmd)
=> 669
irb(main):004:0> Process.kill(15, 669)
=> 1
これは開いた第2のxtermウィンドウを残します。どのようにすべてのプロセスチェーンを殺すことができますか? ps xf
かpstree
のいずれかを使用して
おかげ