文系派遣30代後半が未経験からエンジニアを目指すブログ

まさに崖っぷち。学んだこと、学びながら感じたことを綴るド素人ブログです。

【Ruby】rails sでのエラー・ブラウザが開きません

気がつけば、前回の記事から大分経ってしまっていました。
月日が経つのは早いですが、よろしくない…

今後、アプリの実装のカリキュラムに入っていくので、エラーの備忘録や、発見について少し書いていくつもりです。

で、今日はタイトルのサーバー立ち上げの rails s のエラーについて。

% rails s

で、サーバー立ち上がるはずなのですが、

=> A server is already running. Check プロジェクト名/tmp/pids/server.pid.

あー、エラーですか、そうですか…。サーバーが既に動いてるよって言うんですけど、ブラウザはグルグルしてます。
で、ちょっと対処法を検索しました。

①とりあえずターミナル再起動

これで済むのが一番いいんですけどね…。ダメですた。

②該当プロジェクトの/tmp/pids/server.pid.を削除

この、「/tmp/pids/server」内の「pid」ファイルと言うのは、サーバーが立ち上がったり落としたりするたびにできたり消えたりするらしい。
これが消えてないままだったり?ということで、確かに存在していたので消したのですが、解決せずでした。

=> Address already in use - bind(2) for "127.0.0.1" port 3000 (Errno::EADDRINUSE)

うーん。じゃ、次。

③killの使用

% ps ax | grep rails
=>3701 s000  S+     0:00.01 grep rails

これでrubyのプロセスを確認。

% kill -9 3701
=> kill: kill 3701 failed: no such process

えー。これでもダメ。

 % lsof -wni tcp:3000
COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ruby    3234 maiko.t   26u  IPv4 0xfe72a89e0d47311d      0t0  TCP 127.0.0.1:hbci (LISTEN)
ruby    3234 maiko.t   27u  IPv6 0xfe72a89e09ddc5cd      0t0  TCP [::1]:hbci (LISTEN)
ruby    3234 maiko.t   32u  IPv6 0xfe72a89e0b25a82d      0t0  TCP [::1]:hbci->[::1]:49819 (CLOSE_WAIT)

% kill -9 3234

% rails s

これで無事解決!良かった…
いろんな方が検索したり記事にしているので、割とよくあることなんですね。


※ちなみに、③についてですが、サーバーのプロセス確認は、

% ps ax | grep rails

ではなく、

% ps aux | grep puma

とのこと。rails sはpumaというサーバーを起動しているらしい。

% ps aux | grep puma

% kill -9 出てきた番号

でもいけたかも。

また、このエラーは起きてしまいそうなので、しっかり残しておくことにしました。
また出くわしたら、まずはこの手順でやってみますー(③は※のプロセスもやってみます!)