Linux服务器在执行shutdown -r之后Tomcat报错

执行shutdown.sh出错


Using CATALINA_BASE:   /usr/tomcat9
Using CATALINA_HOME:   /usr/tomcat9
Using CATALINA_TMPDIR: /usr/tomcat9/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_301-amd64
Using CLASSPATH:       /usr/tomcat9/bin/bootstrap.jar:/usr/tomcat9/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
六月 04, 2023 8:50:56 下午 org.apache.catalina.startup.Catalina stopServer
严重: 无法联系[localhost:8005](基端口[8005]和偏移量[0])。Tomcat可能不在运行。
六月 04, 2023 8:50:56 下午 org.apache.catalina.startup.Catalina stopServer
严重: 停止 Catalina 时出错
java.net.ConnectException: 拒绝连接 (Connection refused)
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
        at java.net.Socket.connect(Socket.java:606)
        at java.net.Socket.connect(Socket.java:555)
        at java.net.Socket.<init>(Socket.java:451)
        at java.net.Socket.<init>(Socket.java:228)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:667)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:393)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:483)


04-Jun-2023 20:51:46.383 严重 [main] org.apache.catalina.core.ContainerBase.startInternal 子容器启动失败
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 子容器启动失败
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
    Caused by: org.apache.catalina.LifecycleException: 子容器启动失败
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:935)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 13 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件[org.apache.catalina.webresources.StandardRoot@131ef10]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
        ... 21 more
    Caused by: org.apache.catalina.LifecycleException: 无法启动组件[org.apache.catalina.webresources.StandardRoot@131ef10]
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4881)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5014)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 21 more
    Caused by: java.lang.IllegalArgumentException: 指定的主资源集 [/d/BMSFiles] 无效
        at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        ... 30 more
04-Jun-2023 20:51:46.383 严重 [main] org.apache.catalina.core.ContainerBase.startInternal 子容器启动失败
    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 子容器启动失败
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
    Caused by: org.apache.catalina.LifecycleException: 子容器启动失败
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:935)
        at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 13 more
    Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件[org.apache.catalina.webresources.StandardRoot@23348b5d]
        at java.util.concurrent.FutureTask.report(FutureTask.java:122)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:923)
        ... 21 more
    Caused by: org.apache.catalina.LifecycleException: 无法启动组件[org.apache.catalina.webresources.StandardRoot@23348b5d]
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
        at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4881)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5014)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1383)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
        ... 21 more
    Caused by: java.lang.IllegalArgumentException: 指定的主资源集 [/d/BMSFiles] 无效
        at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:777)
        at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:734)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        ... 30 more
04-Jun-2023 20:51:46.384 严重 [main] org.apache.catalina.startup.Catalina.start 所必需的服务组件启动失败,所以无法启动Tomcat
    org.apache.catalina.LifecycleException: 子容器启动失败
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:935)
        at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardService.startInternal(StandardService.java:430)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:347)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:478)
    Caused by: org.apache.tomcat.util.MultiThrowable: 3 wrapped Throwables: [org.apache.catalina.LifecycleException: 子容器启动失败][org.apache.catalina.LifecycleException: 子容器启动失败][org.apache.catalina.LifecycleException: 子容器启动失败]
        at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:927)
        ... 13 more
04-Jun-2023 20:51:46.384 信息 [main] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-80"]
04-Jun-2023 20:51:46.385 信息 [main] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["https-jsse-nio-443"]
04-Jun-2023 20:51:46.385 信息 [main] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
04-Jun-2023 20:51:46.386 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毁协议处理器 ["http-nio-80"]
04-Jun-2023 20:51:46.386 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毁协议处理器 ["https-jsse-nio-443"]

原来是没有问题的在执行shutdown -r之后就成这样了

来自GPT的回答:

根据您提供的错误信息,似乎在执行shutdown -r命令后,Tomcat无法正常停止并重新启动。出现的错误消息指示Tomcat无法连接到本地主机的端口8005,导致停止服务器和启动子容器失败。

这个问题可能是由于Tomcat实例没有正确停止导致的。在执行shutdown -r命令之前,确保Tomcat实例已经完全停止。可以使用以下步骤尝试解决问题:

确保没有其他进程或服务正在使用Tomcat的端口。可以使用以下命令检查端口占用情况:

perl
Copy code
sudo netstat -tuln | grep 8005
如果端口8005正在被占用,您可以通过停止占用该端口的进程或服务来释放它。

执行以下命令手动停止Tomcat实例:

bash
Copy code
/usr/tomcat9/bin/shutdown.sh
确保在执行shutdown.sh脚本时没有出现错误,并等待Tomcat完全停止。

确认Tomcat已经停止。可以使用以下命令检查Tomcat的进程是否还在运行:

perl
Copy code
ps -ef | grep tomcat
确保没有Tomcat的进程在运行。

重新启动Tomcat。使用以下命令启动Tomcat:

bash
Copy code
/usr/tomcat9/bin/startup.sh
检查启动过程中是否有任何错误消息。

如果问题仍然存在,请提供更多详细信息,例如Tomcat的日志文件中的错误消息,以便更进一步诊断和解决问题。

可能是由于在执行shutdown命令时,进程没有正常退出导致的。可以通过检查进程状态来确定是否存在进程未正常退出的情况。

可以使用以下命令检查进程状态:

ps aux | grep tomcat

如果存在Tomcat进程,则可以使用以下命令查看进程状态:

ps -ef | grep java

如果存在Java进程,则可以通过以下命令查看Tomcat进程的状态:

jps | grep tomcat

如果Tomcat进程存在,但是仍然报错,可能是由于Tomcat的配置文件损坏或者Tomcat进程中的某个进程出现了问题。可以尝试重新启动Tomcat服务或者重新启动进程。

应该跟shutdown -r没有什么关系,重启关机之前会将所有的进程缓存都保存后才会退出,可能还是tomcat本身的问题,或相关软件导致的!