LoginSignup
4
5

More than 5 years have passed since last update.

指定したプロセスIDのプロセスとその子孫全てを再帰的にkillするシェル関数が便利すぎる件について

Last updated at Posted at 2015-01-19

超便利です,感動しました.
https://github.com/doi-t/killpstree

以下,上記のreadme.mdの引用です.


killpstree

指定したプロセスIDのプロセスとその子孫全てを再帰的にkillするシェル関数とそれを試すためのサンプル

本体のシェル関数

killpstree(){
    local children=`ps --ppid $1 --no-heading | awk '{ print $1 }'`
    for child in $children
    do
        killpstree $child
    done
    kill $1
}

引数にプロセスIDを渡すと、再帰的に対象のプロセスツリーの葉から根に向かってkillをして回る.

サンプル実行

例えば、kill対象のプロセスツリーを意図的に2つ生成してそれをkillする場合.

$ bash mkpstree.bash &
$ bash mkpstree.bash &
$ ps ax --forest
$ bash killpstree.bash "mkpstree.bash"

サンプルスクリプトkillpstree.bash自体は、"プロセス名"を指定して、ヒットしたプロセスのIDを再帰的にkillを行うkillpstreeに渡す.

不用意にプロセス名を指定してしまうと、思わぬプロセスまでkillされるので注意

4
5
0

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
4
5