【问题标题】:Tomcat6 shutdown failedTomcat6 关闭失败
【发布时间】:2023-03-10 19:57:01
【问题描述】:

我安装了 tomcat 6.0.32 并在其上运行我的 Web 应用程序。当tomcat正确启动或停止时,通常的停止/启动工作正常。但是当我在启动过程中尝试停止tomcat时,停止失败。

$service tomcat6 stop

Stopping tomcat6:                                          [FAILED]

日志中的错误是:

SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(Unknown Source)
        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:422)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:338)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:416)

我也尝试过使用武力,但它不起作用。有谁知道我们该如何解决这个问题?

注意:我能够在启动过程中停止 tomcat6 (6.0.24),但它在 6.0.32 版本中不起作用。任何帮助/信息都会有很大帮助!

【问题讨论】:

  • 你试过只为 pid 发出 kill -9 吗?
  • 嗨,乔,是的,我知道 kill 命令会杀死进程。我只需要一种优雅的方式来随时停止 tomcat,即使在启动过程中也是如此。到目前为止,在我们升级到 6.0.32 之前我没有遇到任何问题。我们也想使用这个版本并解决停止问题。

标签: tomcat tomcat6 shutdown catalina


【解决方案1】:

这是为了帮助遇到同样问题的任何人。请记住,我没有解释更改的工作原理,但它解决了我的问题,因此将其发布给其他人。

/etc/init.d/tomcat6中有一个名为“parseOption”的函数,它解析配置文件中指定的配置。该函数在其他函数 [stop/start] 中被调用,并且在解析配置时可以正常工作,如上面的输出所示。

在stop函数里面,原来是这样调用的:

   if [ -f "/var/lock/subsys/${NAME}" ]; then
      parseOptions
      $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1

我把上面的改成:

 if [ -f "/var/lock/subsys/${NAME}" ]; then
    $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1
    parseOptions

它奏效了。我能够在启动过程中停止tomcat,否则。 停止功能的其余部分也被正确执行[删除 pid 文件,终止进程......]。 当 tomcat 处于启动模式或启动时,实现有何不同尚不清楚,因为在启动模式下,常规停止工作正常,没有任何变化。

【讨论】:

    猜你喜欢
    • 2016-11-12
    • 2013-02-17
    • 2013-01-18
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-04
    • 2021-03-28
    相关资源
    最近更新 更多