53
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

親子共々殺したい

Last updated at Posted at 2013-03-13

殺したい。

誤解がないように書くと、fluentdとかapacheとか親プロセスがワーカー(子)を生むようなものがハングしたときに、親と子をまとめてkill -KILLしたい事がある。pkill -KILLで名前があってれば無差別にkillという方法もあるが、無差別殺人事件になる可能性があるので、特定の親子プロセスだけをkillしたい。なお、親のPIDはわかってるものとして、$PIDとおく。

UNIXでは、親を殺してしまうと子はinitの養子に引き取られてしまう。そのため、親を殺す前に子を全て列挙する必要がある。psコマンドで--ppid=を付けることで調べることが出来る。

CHILDS=`ps --ppid=$PID | cut -d' ' -f1`

後は親と子供をまとめてkillすればよい。まとめて書くと次のような感じになる。

killall.sh
#!/bin/sh

PID=$1
CHILDS=`ps --ppid=$PID | cut -d' ' -f1`

kill -KILL $PID $CHILDS

なんかもうすこし簡単にできそうな気もする。

53
49
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
49

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?