[ Linux ] 특정 포트 사용중인 프로세스 강제 종료시키기

식빵·2023년 10월 25일
0

작성계기: Tomcat shutdown 이 안된다 🤦‍♂️

오늘 Linux 환경에서 tomcat 을 구동시키고 있는데,
./shutdown.sh 을 실행하면 메모리가 적다는 에러문구와
함께 톰캣이 종료되지 않는 발생했습니다.

이를 해결하기 위해서 톰캣을 linux 의 kill 명령어로 직접 종료시키기로 했는데,
지금부터 그 과정을 공유합니다.

나중에 ./catalina.sh stop -force 를 사용해서 톰캣을 강제 종료할 수 있다는
것을 알았습니다. 다만 이 명령어는 kill -TERM 이 아니라 kill -KILL (= kill -9)
를 통해서 톰캣을 종료한다는 점 유의하시기 바랍니다.





포트 번호를 사용중인 프로세스의 ID 찾기 🔍

현재 사용중인 톰캣의 포트 번호는 7080 입니다.
포트 번호를 알면 lsof 를 통해서 쉽게 프로세스 ID (=PID) 를 찾아낼 수 있습니다.
아래처럼 말이죠.

lsof -i :7080 # lsof -i :<포트번호>

## 출력 예시
COMMAND   PID      USER   FD   TYPE    DEVICE SIZE/OFF  NODE  NAME
java    24381 dailycode   60u  IPv4 234411735      0t0   TCP  *:empowerid (LISTEN)
java    24381 dailycode 2554u  IPv4 234436929      0t0   TCP  ## 생략 ##

PID: 24381 이 현재 톰캣을 구동중인 프로세스의 ID 임을 알 수 있습니다!



PID 를 통한 프로세스 종료 💀

kill -TERM 24381 # kill -TERM <PID>

참고로 -TERM 은 kill 의 default 옵션이기 때문에 생략해도 됩니다.



깔끔하게 한줄로는?

kill $(lsof -t -i:7080)
profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글