haiju's 開発メモ

開発に必要な情報を自分用にメモ

Node.js起動時に発生する「Error: listen EADDRINUSE 0.0.0.0:8080」の対処方法

前のプロセスが正常終了してないのか?

daab run でNode.js起動時によく例外で落ちるようになった。

すぐに回復して再起動すんだけどw(ΦωΦ)

メッセージでlisten ... って言ってるので既にオマエの指定した

Port番号は使われてるぞ!ってエラーだったw

というか、Node.jsもPortは80を使ってんのかw

Genieの内部サーバーと同じかw(ΦωΦ)

ちゃんとdaab logoutするか、プロセスを確認して不要なものが

起動してたらKillして再起動したらいいみたい。

[対処手順]

1. rootでログインして、nodeのプロセス一覧を表示。

# ps aux | grep node
user 17147 0.0 1.5 1198796 29344 ? Ssl May09 0:22 /home/username/.nvm/versions/node/v6.9.2/bin/node /home/username/test_bot/node_modules/lisb-forever/bin/monitor node_modules/.bin/hubot
ichiyama 30016 0.6 2.8 1249368 54368 ? Sl 09:57 0:05 node node_modules/.bin/coffee /home/username/test_bot/node_modules/.bin/hubot -a direct
root 30156 0.0 0.0 107468 924 pts/4 S+ 10:11 0:00 grep node

2. 前に起動したnodeプロセスが生きていたら、殺す。

# kill -9 17147

# kill -9 30016

3. ちゃんと死んだか確認。

# ps aux | grep node
user 30016 0.4 2.8 1250392 54872 ? Sl 09:57 0:05 node node_modules/.bin/coffee /home/username/test_bot/node_modules/.bin/hubot -a direct
root 30174 5.0 0.0 107464 924 pts/4 S+ 10:20 0:00 grep node

# ps aux | grep node
root 30176 0.0 0.0 107464 920 pts/4 S+ 10:20 0:00 grep node

4. 再起動。

[別解]

1. Port番号を80番から別の番号に変更。

2. 再起動。

※それでもダメなら考えよう。

 他にもエラーが発生してるのでそっちも見なくちゃだw(ΦωΦ)

 そもそも、hubotのプロセスが生きてたのはコマンドの確認で

 むやみに、./bin/hubot を実行していて、それが死んでなかった

 からだったwww(ΦωΦ)

[参考サイト]

qiita.com

blog.ch3cooh.jp

utano.jp

uchinoinu.hatenablog.jp

www.codingdefined.com