'杀死Java'不会杀死Java


8

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


您正在寻找的是killall java
roottraveller

Answers:


13

也许是出于某种原因而忽略了信号。你尝试了kill -9吗?

但请注意:kill -9不能忽略或困住它。如果进程看到信号9,则它别无选择,只能死掉。它无能为力-甚至无法优雅地清理其文件。


1
kill -9通常是不得已的方法。这是更好地尝试kill -11,然后kill -6第一。如果kill -11不能杀死它,kill -6通常会杀死它。kill -11首先尝试,等待几秒钟,如果该过程仍然存在,请尝试kill -6。等待几秒钟,如果它仍未消失,则可以尝试kill -9
laebshade 2012年

2

我有时不得不杀死-9。但是,如果这是定期发生的,则应解决引起它的问题。杀死-9意味着有些事情要解决了。

通常,只有当您进入严重的内存崩溃模式时,我才会看到这种情况,这意味着您需要更多的系统内存,或者在启动时为java提供了过多的内存。但是,更常见的是,尤其是在开发东西时,当“ PermGen”内存用完时,您会看到此信息。

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

无论如何,这可能是由于某种OutOfMemory错误所致。


我认为就是这样。我还没有尝试过,但是问题出在我的机器上,有1GB Ram,而Java正在分配512 MB。
Simiil 2010年

1
(对此评论,Loooong拖延了……)如果您正在开发Java,则1 Gig的ram几乎不会削减它。咬一口子,升级到至少2,射击4+。
卡吉

0

阅读这个这个这个。它将帮助您了解kill命令的工作方式。

您可以使用以下命令搜索Java pid:

pgrep -l Java或pidof Java

也许您的系统上有僵尸进程,在这种情况下,请阅读此处


0

尝试这个:

kill -9 $(pgrep Java)

pgrep返回名为“ Java”的进程的PID,并kill杀死它


这应该是基本相同的pkill,这是他已经在使用
迈克尔Mrozek

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.