ローカルサーバを停止せずにターミナルを閉じてしまいました。
概要
タイトルの通りです。
これをやったことで何が起こるかと言いますと・・・
「ターミナルを再起動した時にローカルサーバーが立ち上がらない」
という状況に陥ります。
めっちゃハマりました。
私の場合
$ rails s -b 0.0.0.0
で起動させていて、この時に出るメッセージがこちら。
Address already in use - bind(2) for "0.0.0.0" port 3000
そして調べているうちに出てきた起動方法がこちら
$ rails s Puma
この時は特にメッセージは出てこなかったのですが、
実際にブラウザで確認してみると「localhostは機能していません」
と出てしまう状況でした。
対処法
こちらを参考にさせていただきました。
RackサーバーのPumaについて調べてみる - arakaji's diary
げ!ローカルサーバーを切らずにターミナルを消しちゃった! - Qiita
具体的な解決方法
まずはこの3000が既に使われているとのことでしたので、そこを調べました。
$ lsof -i :3000
出てきた結果はこちらです。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ruby 7620 takagimarin 12u IPv6 0x7d655025f170834b 0t0 TCP localhost:hbci (L ISTEN) ruby 7621 takagimarin 12u IPv6 0x7d655025f170834b 0t0 TCP localhost:hbci (L ISTEN) ruby 11748 takagimarin 9u IPv4 0x7d655025f47508a3 0t0 TCP *:hbci (LISTEN) rub
PID接続してるものが原因とのことでしたので、killコマンドで消しました。
$ kill -QUIT 7620 $ kill -QUIT 7621 $ kill -QUIT 11748 $ kill -QUIT 11752
これで実行できるようになりました!
まとめ
PIDについては深く調べていないので、今後ひと段落したら調べてみます。
しかしこれでたまに動かなくなっていたローカルサーバーの原因がわかったので良かったです。
ターミナルを閉じる時はきちんとサーバーを終了してからにしましょう(笑)