본문 바로가기
⚠️ 오류백과

Node / Express 오류 - EADDRINUSE, Address already in use

by Tamii 2021. 3. 4.
반응형

요즘 node.js 의 express로 local 서버를 만들어 웹서비스를 구현 중이다.

localhost:3004 에 열심히 구현중인데 

갑자기 error 가 났다.

 

Error: listen EADDRINUSE: address already in use :::3004
[dev]     at Server.setupListenHandle [as _listen2] (node:net:1312:16)
[dev]     at listenInCluster (node:net:1360:12)
[dev]     at Server.listen (node:net:1447:7)
[dev]     at Function.listen (/Users/1nk_0/2021codesquad/fe-w4-martian/node_modules/express/lib/application.js:618:24)
[dev]     at Object.<anonymous> (/Users/1nk_0/2021codesquad/fe-w4-martian/app.js:31:5)
[dev]     at Module._compile (node:internal/modules/cjs/loader:1108:14)
[dev]     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10)
[dev]     at Module.load (node:internal/modules/cjs/loader:973:32)
[dev]     at Function.Module._load (node:internal/modules/cjs/loader:813:14)
[dev]     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
[dev] Emitted 'error' event on Server instance at:
[dev]     at emitErrorNT (node:net:1339:8)
[dev]     at processTicksAndRejections (node:internal/process/task_queues:81:21) {
[dev]   code: 'EADDRINUSE',
[dev]   errno: -48,
[dev]   syscall: 'listen',
[dev]   address: '::',
[dev]   port: 3004
[dev] }

 

에러의 내용은 즉슨

3004번 포트가 다른 프로세스에서 사용중이므로 해당 포트를 사용할 수 없다는 것!

 
Error: listen EADDRINUSE: address already in use :::3004

보통 이전에 프로세스가 비정상적으로 종료된 경우 나타나는 에러같은데,

 

 

 

 

🎁  해결시작!

 

1) 터미널 열기

2) 터미널에서 활성화된 프로세스 리스트  출력

// lsof -i TCP:{오류난port번호}
lsof -i TCP:3004

lsof : 터미널에서 활성화된 프로세스 리스트 출력

-i : 특정 포트를 사용중인 프로세스만 출력 

node 프로세스가 3004번을 점유중

 

3) 프로세스 강제종료

//kill -g {프로세스PID}
kill -9 48885

kill명령어로 강제종료 

 

4) 서버 정상 실행 확인

npm run

 

참고로 매번 node 바뀔 때 마다 새로고침 하기가 귀찮아 nodemon을 실행중이어서 nodemon이 나왔다.

댓글