Node.jsでError: listen EADDRINUSE: address already in use :::8080対応方法
環境
# cat /etc/redhat-release
CentOS Linux release 8.5.2111
# node -v
v14.17.5
現象について
スクリプトを実行します
# node sample.js &
エラーメッセージ
Error: listen EADDRINUSE: address already in use :::8080 at Server.setupListenHandle [as _listen2] (net.js:1280:14) at listenInCluster (net.js:1328:12) at Server.listen (net.js:1415:7) at Object.<anonymous> (/usr/local/src/sample.js:5:5) at Module._compile (internal/modules/cjs/loader.js:778:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) at Module.load (internal/modules/cjs/loader.js:653:32) at tryModuleLoad (internal/modules/cjs/loader.js:593:12) at Function.Module._load (internal/modules/cjs/loader.js:585:3) at Function.Module.runMain (internal/modules/cjs/loader.js:831:12
対応方法
1.起動中のプロセスを確認します
# ps aux | grep node root 953 0.0 0.1 17784 2064 ? Ss Dec20 0:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground root 11200 0.0 1.9 514412 35008 pts/0 Sl 01:43 0:00 node sample.js root 12256 0.0 0.0 12136 1156 pts/0 S+ 01:50 0:00 grep --color=auto node
2.killコマンドでプロセスを終了させます
# kill -9 11200
3.プロセスチェックを行います
#ps aux | grep node root 953 0.0 0.1 17784 2064 ? Ss Dec20 0:00 /usr/sbin/mcelog --ignorenodev --daemon --foreground root 12262 0.0 0.0 12136 1080 pts/0 R+ 01:50 0:00 grep --color=auto node [1]+ Killed node sample.js
4.スクリプトを実行します
# node sample.js & [1] 12265