RackアプリケーションのプロセスID(pid)を取得し、終了する方法

TECH
2017.07.06
Pocket

RackアプリケーションのプロセスID(pid)を取得し、終了する方法

Ruby on RailsやSinatraで使われているRackですが、自分でRackアプリケーションやミドルウェアを作ることもあるかと思います。
Rackをデーモン化したり(rackup時にDをオプションとして追加)、間違ってrackupしたコンソールを閉じてしまったときにRackのプロセスをkillしたいことがあります。

毎回psコマンドを使って調べるのは面倒ですし、間違って他のプロセスをkillしてしまう恐れもあります。
確実にRackのプロセスを特定できるようにプロセスID(pid)を特定しておきましょう。

RackではプロセスIDを保存しておくオプションがついています。

rackup -P tmp/rack.pid

P(大文字)オプションをつけ、プロセスIDを保存するファイルを指定します。(小文字のpだとポートの指定のオプションです)

オプションでPをつけると指定したファイルにプロセスIDが保存されるようになります。

3014

こんな感じです。

あとはいつも通り以下のコマンドでRackのプロセスをkillすれば、正しいプロセスを止めることができます。

kill -9 `cat tmp/rack.pid`
Pocket