概要
タイトルの通りです。
これをやったことで何が起こるかと言いますと・・・
「ターミナルを再起動した時にローカルサーバーが立ち上がらない」
という状況に陥ります。
めっちゃハマりました。
私の場合
$ rails s -b 0.0.0.0
で起動させていて、この時に出るメッセージがこちら。
Address already in use - bind(2) for "0.0.0.0" port 3000
そして調べているうちに出てきた起動方法がこちら
$ rails s Puma
この時は特にメッセージは出てこなかったのですが、
実際にブラウザで確認してみると「localhostは機能していません」
と出てしまう状況でした。
対処法
こちらを参考にさせていただきました。
[http://arakaji.hatenablog.com/entry/2015/08/03/200502:title]
[http://qiita.com/nagao_norihiro/items/aba40bd4e0eac9f9a92d:title]
具体的な解決方法
まずはこの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については深く調べていないので、今後ひと段落したら調べてみます。
しかしこれでたまに動かなくなっていたローカルサーバーの原因がわかったので良かったです。
ターミナルを閉じる時はきちんとサーバーを終了してからにしましょう(笑)