티스토리 뷰

개발 작업을 진행하다가 자주 보는 에러 메시지

 

Web server failed to start. Port 3000 was already in use.

 

해당 포트가 이미 사용 중이라 서버를 띄우지 못하는 상황

 

이처럼 로컬 포트에서 작업하다가 해당 port를 kill 해야 하는 경우가 발생했다면

해당 port의 정보를 조회해 pid 번호를 알아낸 뒤 kill 한다

 

 

 

 

1. MAC

 

특정 port의 정보를 찾으려면

lsof -i:[포트번호]

lsof -i:3000

 

 

해당 프로세스를 강제 종료하려면

kill -9 [PID]

kill -9 00000

 

 

(+) lsof란?

List Open Files의 약자

현재 시스템에서 열려 있는 파일들의 목록을 보여주는 유닉스 명령어

파일을 열고 있는 프로세스의 PID(프로세스 식별 번호), 사용자, 파일 이름 등의 정보를 제공

 

(+) 시그널 목록

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP

6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1

11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM

16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP

21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ

26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR

 

(+) SIGKILL(9)의 사용을 추천하지 않는 이유

=> kill -9는 강제 종료 명령어이므로 구현한 함수가 호출되지 않고 프로세스가 즉시 종료되어 데이터 유실이나 리소스 문제 발생 가능성이 있다. 가능하다면 정상적인 방법으로 프로세스를 종료하는 것이 좋다.

 

 

 

 

 

 

2. Window

 

cmd 창을 관리자 모드로 실행한 뒤

현재 사용 중인 port의 리스트 검색하기

netstat -a -o

 

 

해당 포트의 pid 번호를 알아낸 뒤 포트 종료하기

taskkill /f /pid [PID번호]

taskkill /f /pid 0000

 

 

 

 

 

*참고

https://sasca37.tistory.com/276

 

[MAC] 특정 프로세스 종료하기, kill -9 주의점

MAC 특정 포트 프로세스 종료하기 웹 개발하다보면 Web server failed to start. Port 8080 was already in use. 에러를 자주 본다. 특정 포트가 이미 사용 중이므로, 서버를 띄우지 못하는 현상이다. 프로세스 번

sasca37.tistory.com

https://devbirdfeet.tistory.com/36

 

윈도우에서 8080 포트 죽이기

문제 상황 웹 개발 도중 STS에서 톰캣 Tomcat 서버를 켰다. 그러나 8080 포트가 이미 사용 중이라는 에러메시지가 떳다. 그래서 사용 중인 포트를 죽여보도록 하자 문제 해결 - cmd에서 포트를 죽이는

devbirdfeet.tistory.com

 

공지사항