[컴][웹] Tomcat 이 아무 이유없이 죽는 경우


톰캣 죽는 경우 / tomcat is shutdown gracefully / why is the tomcat shut down automatically



Shutdown Problem

tomcat 서버를 돌리고 있는데, 이녀석이 정말 알아서 내려간다. 영어로 정말 gracefully 하게 shut down 이 된다.

이런 녀석들이 생각보다 많은 듯 하다.
  1. java - Tomcat shutting down by itself - Stack Overflow
  2. Tomcat randomly shuts down with an AbstractProtocol pause after mild usage
그런데 사실 마땅한 답변도 없다. 물론 나의 경우에 해당하는 사항이 없다는 이야기이다. 1번 글에 보면 가능한 상황들을 여러개 나열해 준다. 혹시 자신은 그 중 하나에 해당할 수 있으니 확인하자.

그중에서도 가장 확실? 한 해결방법은 위의 1번 글에서 얘기한 부분인 듯 하다.

신기하게 자동으로 shutdown 될 때 아래 log 가 뜨면서 내려간다.(shut-down)
09-Nov-2011 21:40:19 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["http-bio-80"]
09-Nov-2011 21:40:20 org.apache.coyote.AbstractProtocol pause
INFO: Pausing ProtocolHandler ["ajp-bio-8009"]
09-Nov-2011 21:40:21 org.apache.catalina.core.StandardService stopInternal
INFO: Stopping service Catalina

이런 상황이기 때문에 좀 더 단서가 필요하다. 그래서 1번 글에서 log 를 DEBUG 로 찍어 보거나, 아예 tomcat 를 새로 build 해서 AbstractProtocol 부위에서 log 를 추가해 넣으라고 한다.


SHUTDOWN on server.xml

server.xml 의 아래부분을
<Server port="1111" shutdown="SHUTDOWN">

<Server port="-1" shutdown="SHUTDOWN">
이런식으로 수정하면 shutdown command 의 수신을 disable 할 수 있다. 아래링크를 참고하자. 좀 더 안전하게 SHUTDOWN command 의 string 도 바꿔도 된다.

DEBUG log level

일단 1번 글에서 얘기하는 것은
  • <tomcat_path>/conf/logging.properties

ContainerBase 부분을 DEBUG 로 바꾸라고 한다.
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = DEBUG

현재는 log level 을 DEBUG 로 돌려보고 있는데, 그래도 단서가 마땅치 않으면 아마 직접 tomcat 을 build 해야 하지 않을까 싶다. 빌드하는 방법은 아래에 있다.




기타 다른 LOG 설정에 대한 부분은 아래 글을 참고하면 된다.

See Also

  1. 쿠…sal: [컴] systemctl –user도 linger 설정이 필요하다.

댓글 없음:

댓글 쓰기