yat*_*eam 6 linux ubuntu tomcat amazon-web-services systemctl
我首先在 StackOverflow 上问了这个问题,但似乎这个网站更合适。
我正在设置一个 Web 应用程序环境来运行 Java 应用程序。环境应该是:
我启动了 EC2 实例并安装了 java,然后按照本指南设置 Tomcat: https: //www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804
systemctl现在,当尝试启动/重新启动 Tomcat 服务时,问题就会出现。这是我在检查 systemctl 日志时看到的内容:
12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]: tomcat.service: 服务延迟时间结束,计划重新启动。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]: tomcat.service: 计划重启作业,重启计数器为 5。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]:已停止 Apache Tomcat Web 应用程序容器。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]:启动 Apache Tomcat Web 应用程序容器... 12 月 19 日 13:35:25 ip-10-165-10-74startup.sh[1705]:Tomcat 已启动。 12 月 19 日 13:35:25 ip-10-165-10-74 systemd[1]:启动 Apache Tomcat Web 应用程序容器。 十二月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 十二月 19, 2018 1:35:26 PM org.apache.catalina.startup.Catalina stopServer 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:严重:无法联系 [localhost:8005](基本端口 [8005] 和偏移量 [0])。Tomcat 可能未运行。 十二月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 十二月 19, 2018 1:35:26 PM org.apache.catalina.startup.Catalina stopServer 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:严重:停止 Catalina 时出错 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: java.net.ConnectException: 连接被拒绝(连接被拒绝) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 java.net.PlainSocketImpl.socketConnect(本机方法) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.net.Socket.connect(Socket.java:589) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.net.Socket.connect(Socket.java:538) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.net.Socket.(Socket.java:434) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.net.Socket.(Socket.java:211) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 org.apache.catalina.startup.Catalina.stopServer(Catalina.java:513) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]: 在 java.lang.reflect.Method.invoke(Method.java:498) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:403) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:位于 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497) 12 月 19 日 13:35:26 ip-10-165-10-74 shutdown.sh[1725]:停止命令失败。尝试通过操作系统信号通知进程停止。 12 月 19 日 13:35:27 ip-10-165-10-74 shutdown.sh[1725]:Tomcat 已停止。
系统配置:
[单元] 描述=Apache Tomcat Web 应用程序容器 之后=网络.目标 [服务] 类型=分叉 环境=JAVA_HOME=/usr/lib/java/jdk1.8.0_191 环境=CATALINA_PID=/opt/tomcat/temp/tomcat.pid 环境=CATALINA_HOME=/opt/tomcat 环境=CATALINA_BASE=/opt/tomcat 环境='CATALINA_OPTS=-Xms256M -Xmx512M -server -XX:+UseParallelGC' 环境='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=文件:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh 用户=tomcat 组=tomcat U掩码=0007 重新启动秒=10 重新启动=始终 [安装] WantedBy=多用户.target
据我了解,这里的问题是 Tomcat 无法连接到 8005 端口以侦听关闭命令。
但是,我在 EC2 安全组控制台中打开了此端口:
8005 127.0.0.1/32
另一个奇怪的事情是,重新启动 ec2 实例时 Tomcat 启动正常,但无法重新启动并抛出上述异常。
这里可能有什么问题?如何检查端口 8005 是否确实打开?
===========
好吧,我取得了一些进展,我发现 Tomcat 似乎工作得很好。startup.sh工作正常 - 您可能会在日志中看到这一点 - 它回显“Tomcat 已启动”。这是 中的最后一行catalina.sh start。但是,我不明白为什么systemctl在服务启动后立即尝试停止它。它发送catalina.sh stop命令。
感谢@MichaelHampton 的好文章: https://jdebp.eu/FGA/systemd-house-of-horror/tomcat.html
它解释了我阅读的教程(以及大量其他复制粘贴的教程)中建议的典型安装可能出现的问题。我不明白为什么会出现这个问题。也许这是catalina.sh、startup.sh等引入的所有层的问题。
所以基本上,我重写了 systemd 配置脚本,它开始工作。
| 归档时间: |
|
| 查看次数: |
24801 次 |
| 最近记录: |