Web Marina

日々の業務や勉強などで得た知識をアウトプットしていきます。

ローカルサーバを停止せずにターミナルを閉じてしまいました。

概要

タイトルの通りです。

これをやったことで何が起こるかと言いますと・・・

「ターミナルを再起動した時にローカルサーバーが立ち上がらない」

という状況に陥ります。

めっちゃハマりました。

私の場合

$ 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については深く調べていないので、今後ひと段落したら調べてみます。

しかしこれでたまに動かなくなっていたローカルサーバーの原因がわかったので良かったです。

ターミナルを閉じる時はきちんとサーバーを終了してからにしましょう(笑)