09/08/05 14:10:40 3LTkGA7f
要はあるシェルスクリプトのPGIDを簡単に求める方法があればいいのだけれど
PIDは$$で参照できる、みたいなののPGID番があれば…
シェルスクリプトは、直接呼び出せばPGID=PIDなんですが、
他のシェルスクリプトから呼び出すことも考えています。PGID=PIDにならない…
>>548
説明が後出しになって申し訳ないです。
function my_exit()
{
trap - 0
PGID=`ps -p $$ -o pgid | tail -n 1 | sed 's/ //g'`
kill -- -$PGID
}
trap 'my_exit' 0
上記のコードでスクリプトがkillされたりCtrl-Cされたときに、スクリプトだけじゃなく
スクリプトが呼び出した子プロセスや孫プロセスもまとめて止められるようにしようとしています。
例えば、普通にCtrl-Cで止めると子プロセスとか孫プロセスが動いたままになってしまう、
それを避けたいという趣旨です。
子プロセス・子孫のプロセスもまとめて止める方法ってPGIDを使ったkillしか思いつかなかった。