티스토리 뷰

 

서버를 작동시킬 때 정상적으로 종료(Ctrl +C) 하지 않고

서버를 (재)실행시키면 이미 사용 중인 포트라며 오류가 뜰 때가 있습니다.

 

 

ubuntu@ip-172-31-24-226:~/Upload$ node server.js
node:events:368
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::3000
    at Server.setupListenHandle [as _listen2] (node:net:1334:16)
    at listenInCluster (node:net:1382:12)
    at Server.listen (node:net:1469:7)
    at Object.<anonymous> (/home/ubuntu/Upload/server.js:33:4)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1361:8)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'EADDRINUSE',
  errno: -98,
  syscall: 'listen',
  address: '::',
  port: 3000
}

 

 

이는 작동되고 있는 해당 포트의 프로세스를 찾아

종료시키는 방법으로 해결할 수 있습니다.

 

 

 

 

먼저 해당포트 번호를 사용하고 있는 프로세스를 찾아보겠습니다.

다음 명령어를 실행합니다.

 

$ sudo lsof -i :port number

 

 

 

저는 3000번 포트에 실행 중인 프로세스를 검색해 보았습니다.

정상 종료되지 못해 백그라운드에서 작동되는 Node.js가 있었네요.

 

 

 

 

 

 

이제 실행되고 있던 프로세스를 강제 종료해줘야 합니다.

위에서 나온 PID(프로세스 아이디)를 넣어 명령어를 실행시킵니다.

 

$ sudo kill -9 PID

 

 

 

 

저는 sudo kill -9 2409로 입력했습니다.

 

 

 

 

이제 코드를 다시 실행시키면 정상적으로 작동하는 것을 볼 수 있습니다.

저도 종종 까먹는데요.

정상종료를 습관화하는 것이 좋습니다.

 

 

감사합니다.

 

 


 

공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.

댓글
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total
Today
Yesterday