デプロイ時うまく終了しなかったshoryukenプロセスを終了させる

railsの開発でshoryukenのgemを使っているのですがcapistranoでデプロイ時たまに終了してくれないことがあり、アップデートなどしてみたのですが改善せずシェルスクリプトで正常に終了していないプロセスを定期的に終了するようにしました。

使い方

引数にpidファイルを渡すだけです。

./shoryuken_process_clean.sh `pwd`/tmp/pids/shoryuken.pid

実際はこのファイルを/usr/local/binなどに置いてcronで毎分実行させています。

処理内容

現在起動しているshoryukenのプロセスを

ps aux | awk '$11 == "ruby" && $12 ~ /shoryuken$/ {print $2}'

で取得してこの中からpidファイルに含まれていないpidのプロセスに対してUSR1のシグナルを送って終了させています。

スクリプト