[perl] プロセスグループの殺し方

コマンド起動プロセス以外のプロセスから子供含めて殺したい場合

1. 該当プロセスをプロセスグループリーダにしておく

 setpgrp(0,0);

2. 子プロセスなどを生成
3. 新しく作成したプロセスグループにシグナルを送出

   kill SIGNALNAME, -$$ # プロセスグループリーダにて

プロセスグループのpidは、リーダプロセスのpidにマイナスをつけた価になる。


実は、0に送れば、属しているプロセスグループ全体にシグナルを送ることができる。
これでもOKだが乱用すると間違って親プロセスを殺しかねないので注意。

  kill SIGNALNAME, 0