こんにちは。たなかです。
現在Rails Tutorialを進めています。
1.3.2の章で、hello_appのサーバーを立ち上げる項目があり、意気揚々とrails sしたところ以下のエラーに遭遇しました。
もくじ
症状
$ rails s
=> Booting Puma
=> Rails 5.1.6 application starting in development
=> Run `rails server -h` for more startup options
A server is already running. Check /home/ec2-user/environment/hello_app/tmp/pids/server.pid.
Exiting
A server is already running。すでにサーバーが起動しているみたいです。
それはわかりましたけど、ctrl + cで止めるんじゃないんです?
止めるためのターミナルは一体どこへ…?
解決方法
server.pidファイルを削除する!
エラーメッセージにも書いてありますが、hello_app/tmp/pids/server.pid をチェックしてみると、該当のファイルを見つけることができました。
このserver.pidはサーバーを起動する際に使用しているIDのようで、本来はサーバーを終了すると削除されるはずですが、今回の症状が発生したタイミングではなぜか上手く消えてくれなかったみたいです。
ということで手動で削除してからもう一度rails sすると…
$ rails s
=> Booting Puma
=> Rails 5.1.6 application starting in development
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.9.1 (ruby 2.6.3-p62), codename: Private Caller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:8080
Use Ctrl-C to stop
無事サーバーが動き始めました!よっしゃ!
まとめ
エラーは友達。怖くない
私みたいな根っからの文系は、英字がずらっと並ぶとウッ…となってしまいますが、たかが文字です。
落ち着いて文章をよく読めば、railsさんは優しいのでヒントをくれてたりします。
今回はヒント通りに事が済んでよかったです。続き頑張るぞ〜!
短いですが、今回はここまで。