“杀死java”并没有杀死java

“杀死java”并没有杀死java

我现在正在运行 Debian,有时我需要从终端手动终止 Java,但当我尝试时什么kill #pid#pkill java没有发生。没有控制台输出(好的,这是正常的)并且 Java 仍在运行(不正常)。终止它的唯一方法是重新启动 PC。有什么建议吗?

答案1

也许由于某种原因忽略了信号。你试过了kill -9吗 ?

但请注意:kill -9不能被忽视或被困住。如果一个进程看到信号 9,它别无选择,只能死亡。它不能做任何其他事情——甚至不能优雅地清理它的文件。

答案2

我偶尔不得不杀死-9。但是,如果这种情况经常发生,您应该解决导致该问题的问题。 Kill -9 意味着有些事情还很遥远。

一般来说,我只在你进入严重的内存崩溃模式时才会看到这种情况,这意味着你要么需要更多的系统内存,要么在启动时给了 java 太多的内存。但更常见的是,特别是如果您正在开发东西,当您用完“PermGen”内存时,您会看到这种情况。

http://www.brokenbuild.com/blog/2006/08/04/java-jvm-gc-permgen-and-memory-options/

无论如何,这可能是由于某种 OutOfMemory 错误造成的。

答案3

这应该有效:

killall -9 java

答案4

对我来说,一旦我杀死了该进程,它就会重新启动。所以对我来说这是一个涉及以下命令的事实调查任务。假设相关端口为8080端口:

lsof -i tcp:8080

请注意底部附近命名的进程java及其 pid。

然后ps -ef <pid here>

这吐出了一条与 相关的大消息tomcattomcat@9尤其。

brew services stop tomcat@9解决了问题

相关内容