我无法关闭 tomcat。当我执行 ./shutdown.sh 时,我没有看到任何错误,但该进程似乎仍在运行。当我终止进程 (kill -9) 时,进程被终止。在此之后,如果我再次启动并关闭,我会看到同样的问题。我如何优雅地关闭它?为什么会发生这种情况?请帮助我。
devServer:bin dev$ ps -ef|grep tomcat
501 34933 1 0 11:24PM test 0:02.02 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/dev/admin/runtime/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/Users/dev/admin/runtime/endorsed -classpath /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar -Dcatalina.base=/Users/dev/admin/runtime -Dcatalina.home=/Users/dev/admin/runtime -Djava.io.tmpdir=/Users/dev/admin/runtime/temp org.apache.catalina.startup.Bootstrap start
501 34982 33786 0 11:45PM test 0:00.00 grep tomcat
devServer:bin dev$ ./shutdown.sh
Using CATALINA_BASE: /Users/dev/admin/runtime
Using CATALINA_HOME: /Users/dev/admin/runtime
Using CATALINA_TMPDIR: /Users/dev/admin/runtime/temp
Using JRE_HOME: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
Using CLASSPATH: /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar
devServer:bin dev$ ps -ef|grep tomcat
501 34933 1 0 11:24PM test 0:02.03 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/dev/admin/runtime/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/Users/dev/admin/runtime/endorsed -classpath /Users/dev/admin/runtime/bin/bootstrap.jar:/Users/dev/admin/runtime/bin/tomcat-juli.jar -Dcatalina.base=/Users/dev/admin/runtime -Dcatalina.home=/Users/dev/admin/runtime -Djava.io.tmpdir=/Users/dev/admin/runtime/temp org.apache.catalina.startup.Bootstrap start
501 34992 33786 0 11:45PM test 0:00.00 grep tomcat
devServer:bin dev$
另外,我发现我的 catalina.out 太短了。根本没有写入端口号信息。这就是我每次启动时看到的全部内容。
Feb 15, 2014 11:24:23 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
这是我的日志文件-
devServer:logs dev$ cat catalina.2014-02-15.log
Feb 15, 2014 11:24:23 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: .:/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java
似乎有些东西被搞得一团糟。我不明白什么。请指教。 我在 Mac OS 上运行 tomcat 7.0.50。
最佳答案
从日志来看,很明显tomcat根本没有正常启动。我还可以建议一些其他测试
- 验证端口是否被 tomcat 服务绑定(bind)。您可以通过在终端上发出命令
netstat -tuplen
并检查端口 8080 是否被 tomcat 实例绑定(bind)来执行此操作。 - 检查您是否可以 ping 实例。尝试从本地计算机 ping tomcat 实例。然后尝试 ping 服务器的公共(public) ip 以验证该服务器是否正确响应
- 确认您实际上拥有其他服务器使用的完整 tomcat 模板。验证 tomcat 安装文件夹并将其与其他服务器中使用的其他 tomcat 模板进行比较。确保所有文件夹都在那里,所有配置(默认 tomcat 配置)文件都存在。
- (只是一种预感)还要验证读/写/执行权限
- 删除您的应用程序,关闭 tomcat,清空日志,然后重新启动 tomcat 并重新部署您的应用程序,然后查看日志以查看是否出现错误
第 3 点似乎更有可能是你有一个不完整的 tomcat 实例,所以我建议你制作一个在任何其他服务器中使用的 tomcat 实例的副本,并在这个服务器中使用它,以确保服务器环境实际上是这样的应该是
关于java - Tomcat 没有关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21809065/