У меня есть ситуация, когда один xterm запускает другой xterm, который запускает процесс. Я хотел бы установить своего сторожевого пса и убить все эти окна в случае застрявшего процесса.Как можно убить процесс со всем его childern
Я использую 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 открытым. Как можно убить всю цепочку процессов?
Благодаря