Java进程仍然在运行,因此我需要杀死PID才能停止它。注意:捕获到JDK_JAVA_OPTIONS选项:--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
有人知道这是什么问题吗?我需要做些什么来解决它吗?
谢谢!
Java进程仍然在运行,因此我需要杀死PID才能停止它。注意:捕获到JDK_JAVA_OPTIONS选项:--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
根据这个邮件列表线程,这些消息是指Tomcat在Java 9及以后版本上运行时设置的选项,以在Java内部发生变化时维护重要功能(如内存泄漏预防/检测)。我猜这些变化与Java平台模块系统有关。
因此,这是一种特性,而非缺陷。
Java进程仍在运行
在macOS Mojave上使用AdoptOpenJDK的Java 13.0.1运行时,我没有看到这种行为。在使用Tomcat 9.0.27执行shutdown.sh
后,在Activity Monitor.app中找不到任何java
进程。
我怀疑你的java
进程继续运行是由于其他原因造成的。例如,从经验上讲,线程池未关闭导致了executor service。
当退出Tomcat 9时,我会收到类似于您发布的消息:
注意:捡起JDK_JAVA_OPTIONS:--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
我也遇到了同样的问题。我使用命令行进入Tomcat日志:
$ sudo tail -f / opt / tomcat / log / catalina.out
在重新启动服务时,请查看最新的消息。
一种解决方案是注释掉以下行:
Environment = 'CATALINA_OPTS = -Xms512M -Xmx1024M -server -XX: + UseParallelGC'
从tomcat.service
守护程序中并重新启动服务。该行控制分配的内存并阻止服务的上升。这对我有用,我将仅将Tomcat用于本地测试和学习,而不是作为真正的servlet服务器,这对我来说无关紧要,但我认为这不是生产Tomcat的理想解决方案。
检查Apache2错误日志与我使用catalina.out
相同的命令可能也会有所帮助。
我希望对其他人有用。