728x90

들어가기 앞서

본 문서는 MacOS에서 특정 포트가 실행 상태를 확인하고, 해당 포트에서 실행되고 있는 프로세스를 종료하는 방법을 정리합니다.

 

관련 문서

TL;DR

# 8080 포트에서 실행되는 프로세스 및 PID를 확인합니다
$ lsof -i :8080

COMMAND   PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    96769 heedong   50u  IPv6 ********      0t0  TCP *:http-alt (LISTEN)

# 해당 프로세스의 아이디(PID)를 이용하여 프로세스를 종료합니다
$ kill -9 96769

 

배경

Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port.

8080포트가 사용 중이다

 

 

개발 도중 사용하고 있던 특정 포트가 종료되지 않아 다시 명령어를 입력했을 때 에러가 발생하는 경우를 한 번씩 겪는다.
(e.g. node:3000, django:8080, tomcat:8080)

 

예전 작성글에 Windows에서 명령 프롬프트(CMD)를 통해 특정 포트 검색 및 프로세스 종료 방법에 대해 정리를 한 적이 있어서 이번에 MacOS를 기준으로 정리하고자 한다.

 

특정 포트 검색 (lsof -i :{PORT})

lsof -i :{PORT 번호}

 

예를 들어 8080번 포트를 검색하고 싶은 경우 아래와 같이 명령어를 실행한다.

$ lsof -i :8080

COMMAND   PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    97510 heedong   50u  IPv6 ********      0t0  TCP *:http-alt (LISTEN)

 

명령어를 실행하는 경우 해당 포트를 점유하고 있는 프로세스의 아이디(PID)를 확인할 수 있다.

 

프로세스 종료 (kill -9 {PID})

kill -9 {PID}
왜 -9 를 붙이는가?
- kill 명령어는 Linux 시그널 번호를 활용하여 이벤트를 전달합니다.
- 이 때 사용하는 9는 SIGKILL을 의미하여, 실행 중인 프로세스를 강제로 종료하는 신호입니다.

 

 

방금 전에 확인한 8080번 포트를 점유하고 있는 프로세스의 아이디인 97510 프로세스를 종료하고 싶다면 아래와 같이 명령어를 실행한다.

kill -9 97510

 

해당 포트를 점유하고 있던 프로세스가 종료되었는지 확인하기 위해서는 위의 '특정 포트 검색'에서 실행했던 lsof 명령어를 한 번 더 실행해서 정상적으로 프로세스가 종료되었는지 확인할 수 있다.

728x90

+ Recent posts