【发布时间】:2016-09-07 14:19:38
【问题描述】:
我有一种情况,一个 xterm 运行另一个 xterm,它运行一个进程。 我想设置某种看门狗并在进程卡住的情况下杀死所有这些窗口。
我正在使用 Ruby 来执行此操作。当第一个 xterm 打开时,我得到它的 PID,然后当一个 SIGTERM 发送给它时,只有第一个 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
这会使第二个 xterm 窗口保持打开状态。怎样才能杀死所有的进程链?
谢谢
【问题讨论】: