0
我有一個腳本(script.sh),產生了大量的子進程。如果我運行從經由./script.sh殼中的腳本,我可以通過殺死的全過程樹從Ruby中殺死進程組殺死我的整個計算機
kill -- -<PID>
其中PID是script.sh進程的進程ID(這顯然是等於組ID) 。
但是,如果我通過
pid = Process.spawn(script.sh)
產卵在Ruby腳本我不能設法殺死進程樹。
Process.kill(9,pid)
只殺死父進程。甚至最糟糕的是,以下內容
Process.kill(9,-Process.getpgid(pid)) ### Don't try this line at home
終止我的電腦。 試圖通過殺死進程
system("kill -- -#{pid}")
也失敗。 我該如何從Ruby中殺死這個進程樹?
沒有你交叉檢查你的Ruby腳本的PID值 – mbieren
是的,從菌種的PID與PID我在ps的斧頭 – tvcuyck
看到我會嘗試fork一個子進程在其運行腳本並殺死它對應的PID像[kill示例](http://ruby-doc.org/core-2.4.1/Process.html#method-c-kill)。 – guitarman