rails sが通らない
rails sを打つと以下のエラーが出ました。
`bind': Address already in use - bind(2) for 0.0.0.0:3000
3000番ポート使われてるみたいです。
1.立ち上がってる別のrailsサーバーを落とす
以下のコマンドで立ち上がってるrubyプロセスを確認してください。$ ps -ax | grep ruby
あったらこんな感じで表示されます
34032 ttys025 0:04.26 /Users/suechan/.rbenv/versions/2.1.1/bin/ruby bin/rails s -p 3001 34126 ttys030 0:00.00 grep ruby
もしあればそのプロセスを確認しrailsサーバーであればkillします。なければrails以外の別サービスが3000番ポートを使用していますのでそれを切ります。
2.3000番ポートを使用している他のプロセスをキルする
以下のコマンドで3000番ポートを使用しているサービスを確認してください$ lsof -i:3000
あったらこんな感じで表示されます
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME VBoxHeadl 32467 suechan 19u IPv4 0xad7de19b83724065 0t0 TCP *:hbci (LISTEN)
ここではvirtualboxのプロセスが生きてるので、virtualboxを落とします。(終了作業したがいいです)
3.別ポートで立ち上げる
一番手っ取り早いですが根本的な解決ではありません。以下のように打てば別ポートで立ち上がります。
$ rails s -p 3001
これで3001番ポートでwebrickが起動します。
※注意
1024番以前のポート開放にはroot権限が必要になるので、例えばポートを80と指定した時には以下のようなエラーが出ます
`bind': Permission denied - bind(2) for 0.0.0.0:80
もし80番で起動したければ
$ sudo rails s -p 80
としてください。
タイトルに見覚えがhyottokoaloha.hatenablog.com