はじめに
パソコンが重くなってしまったり、接続不良でターミナルが動作しなくなってしまい、再度ターミナルを立ち上げると「A server is already running」という文字が表示されることがあるかと思います。
私自身も最近この現象に陥ることが多いため、まとめとして記録しておきたいと思います。
(参考記事)
・rails server -d でバックグラウンドで実行中のプロセスを停止する方法
https://qiita.com/Masaaki/items/6b29c2bb1a49107f2b73
開発環境
ruby 2.6.3
Rails 5.2.4.4
ターミナル
$ rails s
=> Booting Puma
=> Rails 5.2.3 application starting in development
=> Run `rails server -h` for more startup options
A server is already running. Check /app/tmp/pids/server.pid.
この現象は何か
アプリケーションサーバーのpumaが停止されていない状態で、ターミナルを再度立ち上げた際に、もう既にサーバーが起動されていることを示しています。
通常であれば、cont + Cなどでサーバーを停止させますが、何らかの理由によりこのコマンドを入力していない際に起こる現象です。
解決方法
①既存のターミナルを削除、再度ターミナルを起動
この作業だけで問題なく動作する場合もあります。
※①で解決しなかった場合
②手動でプロセス番号(PID)を指定して切る
以下のようなコマンドを実行すると、左から2番目に5桁の数字が表示されます。この数字がプロセス番号(PID)に当たります。
こちらをご自身の番号に置き換え、以下のコマンドを実行すると手動でサーバーを切ることができます。
最後に通常通りサーバーを立ち上げると、問題なく作動するかと思います!
$ ps aux | grep rails
ec2-user 11174 0.0 0.0 119424 912 pts/1 S+ 14:30 0:00 ・・・
$ kill -9 11174
$ rails s
終わり
今回は以上になります。
私自身初見の際に大変焦ってしまった記憶があります。
まだまだプログラミング初心者ではありますが、同じ様な立場の方に少しでも参考になれば幸いです。
また、もし内容に誤りなどがございましたら、ご指摘いただけますと幸いです。