forkした子プロセス孫プロセス…を一気に殺す back 殺したいプロセスツリーの最も親に当たるプロセスIDがわかれば、皆殺しできる。 プロセスIDが $chld_pid とすると -- $pgrp = getpgrp $chld_pid; kill -9, $pgrp; -- getpgrp で、プロセスグループを取得でき、kill の第一引数のシグナルを負の数にすることで、グループ全体にシグナルを送信できる。 back
forkした子プロセス孫プロセス…を一気に殺す back 殺したいプロセスツリーの最も親に当たるプロセスIDがわかれば、皆殺しできる。 プロセスIDが $chld_pid とすると -- $pgrp = getpgrp $chld_pid; kill -9, $pgrp; -- getpgrp で、プロセスグループを取得でき、kill の第一引数のシグナルを負の数にすることで、グループ全体にシグナルを送信できる。 back
Perlからプロセスが生存しているかどうか確認する場合はif(kill 0 => $PID){ kill 15 => $PID; }else{ print "$PID is not alive\n"; }などとすることで確認できる。 ふむ。たしかに普通にkillするときもkill -s 0 PID # ↓がでてこなければ生存しているPID kill: (PID) No such process となるし。なるほど納得。 forkなどで子プロセスを大量に生成したり、さらに孫プロセスなんかつくったりするような場合、forkした子プロセスたちを一括でkillしたい場合kill -9 , getprgp $PID で親プロセスが生成した子プロセスとかもまとめてkillできる。 getprgpはプロセスグループを取得する関数らしい。こんなの知らなかったなあ。で第一引数のシグナル番号をマイナスにするこ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く