로컬PC에서 웹프로젝트 데모 하나 띄우려고 했는데 80포트를 이미 사용하고 있다고 메시지가 나온다.
Description:
Web server failed to start. Port 80 was already in use.
Action:
Identify and stop the process that's listening on port 80 or configure this application to listen on another port.
그럼 //해당 포트 사용 프로세스 확인하고 죽여줘야지..
시스템 환경
- MacBook Pro (14-inch, M2, 2021)
- OS: macOS Sonoma (버전 14.0)
- 칩: Apple M2 Pro
- 메모리: 16GB
포트확인
lsof 명령어를 사용한다.
//포트확인
~ lsof -n -i TCP:80
//결과
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 26120 am0720 120u IPv6 0xc474cb557265599f 0t0 TCP *:http (LISTEN)
lsof 명령어에서 -n 옵션
네트워크 주소를 숫자 형식으로 표시하도록 지정하는 옵션입니다. 기본적으로 lsof 명령어는 네트워크 주소를 호스트 이름으로 표시합니다.
예를 들어, lsof -i :80 명령어를 실행하면 현재 80번 포트를 사용하는 모든 프로세스와 해당 포트에서 수신 또는 송신 중인 모든 연결을 보여줍니다. 이때 -n 옵션을 사용하면 호스트 이름 대신 IP 주소가 표시됩니다.
즉, -n 옵션을 사용하면 lsof 명령어가 네트워크 주소를 숫자 형식으로 표시하므로, DNS 조회를 수행하지 않아도 되어 속도가 빨라집니다. 따라서, -n 옵션은 lsof 명령어의 실행 속도를 향상시키는데 유용합니다.
프로세스 죽이기
kill 명령어를 사용한다.
// 프로세스 죽이기
// kill -9 <PID>
~ kill -9 26120
// 프로세스 죽음 확인
~ lsof -n -i TCP:80
빈 내용 출력됨
kill -9 의미
-9 옵션은 프로세스를 강제로 종료하는 옵션입니다. -9는 SIGKILL 시그널을 프로세스에 보내어 해당 프로세스를 즉시 종료시킵니다.SIGKILL 시그널은 가장 강력한 종료 시그널로, 프로세스에게 어떠한 처리의 여지도 주지 않고 즉시 종료하라고 명령합니다. 이 옵션을 사용하면 프로세스는 정상적인 종료 과정을 거치지 않고 즉시 종료되므로, 프로세스가 어떤 상태에 있던 간에 강제로 종료됩니다.
예를 들어, kill -9 명령어를 사용하여 특정 프로세스를 강제로 종료할 수 있습니다. 는 종료하려는 프로세스의 식별자인 프로세스 ID(Process ID)를 나타냅니다.
-9 옵션은 프로세스를 강제로 종료해야 할 때 사용됩니다. 그러나 이 옵션은 프로세스가 자원을 정리하거나 중요한 작업을 수행하지 못하고 종료되므로, 가능한 경우에는 -9 옵션 대신 다른 종료 시그널을 사용하는 것이 좋습니다. 대부분의 경우, kill 명령어에 별도의 옵션이 지정되지 않으면 기본적으로 SIGTERM 시그널이 사용됩니다.
#port #포트 #PID #프로세스 #스프링부트 #포트죽이기 #kill #lsof
끝.
'IT' 카테고리의 다른 글
String.format 으로 원하는 형식으로 출력하기 (1) | 2023.11.15 |
---|---|
Cron expression 사용법 정복하기 (76) | 2023.11.13 |
Jenkins 타임존 설정하기 (2) | 2023.11.09 |
[CI/CD] Jenkins 설치하기 for Docker (1) | 2023.11.09 |
소프트웨어 버전 네이밍과 상태(GA, RC, PRE) 표기에 대해 알아보자 (0) | 2023.11.08 |