rails s
でサーバーを立ち上げた後、Ctrl + C
で終了せずにターミナルを終了しちゃったりすると、次回起動時に以下のようなエラーが発生します。
$ rails s
=> Booting Puma
=> Rails 5.0.4 application starting in development on http://localhost:3000
=> Run `rails server -h` for more startup options
A server is already running. Check プロジェクト名/tmp/pids/server.pid.
Exiting
対処方法
$ kill $(cat tmp/pids/puma.pid)
or
$ lsof -ni tcp:3000 #or lsof -i:3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 77464 d0ne1s 20u IPv4 0xe8bde147dfa7a793 0t0 TCP 127.0.0.1:hbci (LISTEN)
ruby 77464 d0ne1s 22u IPv6 0xe8bde147d9f527d3 0t0 TCP [::1]:hbci (LISTEN)
$ kill -9 77464
lsof
:オープンしているファイルを一覧表示するコマンド
-n
:IPアドレスを表示する(名前解決しない)
-i
:ポート番号やプロトコルを指定する
kill
:プロセスを終了する
-9
:強制終了