【シェルスクリプト】ゾンビ化したXvfbプロセスが見つかったたらkillする方法です。
最近Xvfbを使って仮想ディスプレイを作ってSeleniumを動かしたりしているのですが、テスト等でXvfbを起動したとき正常に終了しなかった場合、Xvfbプロセスがゾンビ化して残っちゃうんですよね。
ほっておいているとどんどん溜まっていくのでcronを使って定期的にXvfbプロセスをkillシェルスクリプトを用意しました。
ソースコードは以下のとおりです。
親プロセスIDが1のXvfbプロセスがゾンビプロセスなので「awk ‘$3’==1」で親プロセスIDが1かどうかチェックしています。
「wc -l」でゾンビプロセスが見つかった行数を返すので1以上の数字が返ってきたら「aws ‘{print $2}’」でプロセスIDを取得してkillします。