톰캣 윈도우 서비스로 등록해서 사용하던중 발생한 에

2021. 9. 14. 10:54톰캣관련

반응형

운영서버에서 사용하는 톰캣은 서비스에 등록해서 사용하는 형태였는데

해당 서비스가 종료되던중 그대로 멈춰버리는 일이 발생했음

위의 경우는 정상적으로 실행될때의 모습인데

해당오류가 발생했을때는 start,stop버튼 비활성화 상태라 누를수도없는 형태였음.

##기타 고려사항##

보통 이클립스에서 톰캣서버를 띄울때도 가끔 실행되다가 멈추는 경우가 존재함. 해당 port 그대로 사용하는채로 멈춰버림.

Ex) 8080관리자 포트를 사용하던 톰캣이 시작중 오류발생. 재시작눌렀으나 비정상적인 종료 포트는 그대로 사용중인 상태로 남는경우가 많음.

 

##해결방법##

1번방법

보통 그럴경우 사용하는 port 닫는경우가 해결이빠르다. 위의 경우에도 window에서 listening port 확인하는 명령어

Netstat -ano | find "LISTENING" 사용하면 현재 포트와 PID 확인가능하고

확인 해당 PORT 죽이면된다.

Ex) taskkill /F /PID 31724(해당 port pid번호)

그런데 이번의 경우 실행이 되던중에 오류발생으로 멈춰서 그런지 80 port 사용하는 사용자 톰캣이였는데 해당 port 사용하는게 안나왔음.

2번방법

그에따라 운영중인 서비스를 볼수있는 명령어 tasklist 호출해봄. 윈도우에서 실행중인 서비스를 모두보는방법 3개가 존재함  cmd 창에서 해당 명령어 or 윈도우키+r 해서 나오는창에서 services.msc 입력하면 나오는 서비스창. Or 컨트롤+알트+del하면 나오는 작업관리자창

어디서든 pid 확인 kill시도

Ex) taskkill /F /PID 31724(해당 port pid번호)

실패함

해당 프로그램 이름으로 task kill하는방법

taskkill /f /im xxxx.exe

 

서비스를 강제 종료 시키는 방법

어차피 서비스 들어가서 서비스 이름 확인. Wuauserv 이라면

명령프롬프트(관리자) 모드로 아래 명령어 수행

) taskkill /F /FI "SERVICES eq <service name>"   <===== 실제 명령 수행시 < >는 없어야 함.

# taskkill /F /FI "SERVICES eq wuauserv"       <=== 요것을 수행

 

위 방법이 안되고 서비스 프로세스를 찾을수가 없는상태라.. 결국 해당 윈도우로 된 운영서버를 재시작 했었다 ㅠㅠㅠㅠㅠㅠ

 

참고주소

https://zewtion.tistory.com/294

 

https://aljjabaegi.tistory.com/163  <<해당주소가 정리가 잘되어있음.

반응형