오늘 Linux 환경에서 tomcat 을 구동시키고 있는데,
./shutdown.sh
을 실행하면 메모리가 적다는 에러문구와
함께 톰캣이 종료되지 않는 발생했습니다.
이를 해결하기 위해서 톰캣을 linux 의 kill
명령어로 직접 종료시키기로 했는데,
지금부터 그 과정을 공유합니다.
나중에
./catalina.sh stop -force
를 사용해서 톰캣을 강제 종료할 수 있다는
것을 알았습니다. 다만 이 명령어는kill -TERM
이 아니라kill -KILL (= kill -9)
를 통해서 톰캣을 종료한다는 점 유의하시기 바랍니다.
현재 사용중인 톰캣의 포트 번호는 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
임을 알 수 있습니다!
kill -TERM 24381 # kill -TERM <PID>
참고로
-TERM
은 kill 의 default 옵션이기 때문에 생략해도 됩니다.
kill $(lsof -t -i:7080)