Posted at

ローカルでrails sが止まらない!


ユースケース

railsのゾンビプロセスを発生させる手法


  • tmux, terminalを閉じてしまった場合

  • railsをバックグラウンドで実行する方法

railsのバックグラウンド実行

$ rails server -d


  • process idを消す

$ rm ./tmp/pids/server.pid


サーバーを止める方法

process id(以下pid)を消す必要があります。

消し方としては以下の3つの方法があります。


  • ポートからpidを探す

  • tmpのserver.pidからpidを探す

  • pumaのprocessからpidを探す


ポートからpidを探す

$ lsof -i:3000

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ruby 31584 _user_name_ 10u IPv4 0xac1c1f275d70c41 0t0 TCP localhost:hbci (LISTEN)
ruby 31584 _user_name_ 11u IPv6 0xac1c1f26fce7e19 0t0 TCP localhost:hbci (LISTEN)
$ kill -kill 31584


tmpのserver.pidからpidを探す

$ ls tmp/pids/server.pid

tmp/pids/server.pid
$ cat tmp/pids/server.pid
31584
$ kill -kill 31584


pumaのprocessからpidを探す

$ ps aux | grep puma

_user_name_ 32578 0.0 0.0 xxx xxx s000 S+ xx:xxAM 0:00.00 grep puma
_user_name_ 31584 0.0 0.8 xxx xxx s005 S+ xx:xxAM 0:02.52 puma 3.12.1 (tcp://localhost:3000) [project_name]
$ kill -kill 31584


参考文献