systemctl tomcat no bind 8005 port
Tomcat 을 설치하고 난후에 systemd 에 유닛으로 등록하고 나고 서비스를 시작하고 shutdown 을 하려고 할때에 다음과 같은 오류를 만날 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 |
Feb 26 12:17:40 ubuntu18 systemd[1]: Stopping Apache Tomcat Web Application Container... Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: Feb 26, 2019 12:17:40 PM org.apache.catalina.startup.Catalina stopServer Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: SEVERE: Could not contact [localhost:8005] (base port [8005] and offset [0]). Tomcat may not be running. Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: Feb 26, 2019 12:17:40 PM org.apache.catalina.startup.Catalina stopServer Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: SEVERE: Error stopping Catalina Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: java.net.ConnectException: Connection refused (Connection refused) Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: at java.net.PlainSocketImpl.socketConnect(Native Method) Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) Feb 26 12:17:40 ubuntu18 shutdown.sh[2798]: at java.net.Socket.connect(Socket.java:589) |
8005 포트로 접속을 할 수 없어서 셧다운시에 오류를 발생시키는 것이다. 왜 이런문제가 발생할까? systemd tomcat 유닛의 내용은 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[Service] Type=forking Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_BASE=/home/systemv/was1" ExecStart=/opt/tomcat/bin/catalina.sh start ExecStop=/opt/tomcat/bin/catalina.sh stop User=systemv Group=systemv UMask=0007 RestartSec=10 Restart=on-failure |
그리고 이 상태로 다음과 같이 tomcat 을 서비스로 시작 한다.
1 |
]# systemctl start tomcat.service |
이렇게 하고 난후에 netstat 명령어로 포트 리스닝 상태를 살펴보면 8005 포트가 보이지 않는다. 더 큰 문제는 shutdown 포트가 올라오지 않으면 Tomcat 이 작동하지 않는데 있다.
해결 방법은 의외로 간단하다. 다음과 같이 systemd tomcat 유닛 파일에 WorkingDirectory 를 CATALINA_BASE 로 해주면 된다.
1 2 3 4 5 6 7 |
[Service] Type=forking + WorkingDirectory=/home/systemv/was1 Environment="CATALINA_HOME=/opt/tomcat" Environment="CATALINA_BASE=/home/systemv/was1" |
이렇게 하게되면 tomcat 이 shutdown 포트까지 올라오면서 정상적으로 다 구동되게 된다.
ps, 이걸 몰라 3시간을 해멧다.