'Java töten' tötet Java nicht

8

Ich verwende gerade Debian und manchmal muss ich Java manuell vom Terminal aus beenden, aber wenn ich es versuche kill #pid#oder pkill javanichts passiert. Keine Konsolenausgabe (ok, das ist normal) und Java läuft noch (nicht normal). Die einzige Möglichkeit, es zu beenden, besteht darin, den PC neu zu starten. Irgendwelche Vorschläge?

Simiil
quelle
was Sie suchen istkillall java
roottraveller

Antworten:

13

Vielleicht ignoriert es das Signal aus irgendeinem Grund. Hast du es versucht kill -9?

Aber bitte beachten Sie: kill -9Kann nicht ignoriert oder gefangen werden. Wenn ein Prozess das Signal 9 sieht, hat er keine andere Wahl, als zu sterben. Es kann nichts anderes tun - nicht einmal seine Dateien ordnungsgemäß bereinigen.

Hemant
quelle
1
kill -9ist in der Regel ein letzter Ausweg. Es ist besser , zu versuchen , kill -11dann kill -6zuerst. Wenn kill -11es nicht tötet, kill -6tut es normalerweise. Versuchen Sie es kill -11zuerst, warten Sie einige / einige Sekunden, und wenn der Prozess noch läuft, versuchen Sie es kill -6. Warten Sie einige Sekunden und wenn es immer noch nicht tot ist, können Sie es versuchen kill -9.
Laebshade
2

Ich muss gelegentlich -9 töten. Wenn dies jedoch regelmäßig geschieht, sollten Sie das Problem beheben, das es verursacht. Kill -9 bedeutet, dass etwas weit weg ist.

Im Allgemeinen sehe ich dies nur, wenn Sie sich in einen ernsthaften Speicher-Thrash-Modus versetzen, was bedeutet, dass Sie entweder mehr Systemspeicher benötigen oder Java zu viel Speicher geben, wenn Sie beginnen. Häufiger jedoch, insbesondere wenn Sie Dinge entwickeln, können Sie dies sehen, wenn Ihnen der "PermGen" -Speicher ausgeht.

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

In jedem Fall kann es an irgendwelchen OutOfMemory-Fehlern liegen.

kāgii
quelle
Ich denke das ist es. Ich habe es noch nicht ausprobiert, aber mein Computer, auf dem das Problem liegt, hat 1 GB RAM und Java weist 512 MB zu.
Simiil
1
(Lange Verzögerung bei diesem Kommentar ...) Wenn Sie Java entwickeln, wird 1 Gig RAM es so gut wie nicht schaffen. Beißen Sie die Kugel und rüsten Sie auf mindestens 2 auf, schießen Sie für 4+.
kāgii
0

Lesen Sie dies , dies und das . Es wird Ihnen helfen zu verstehen, wie der Befehl kill funktioniert.

Sie können nach der Java-PID suchen mit:

pgrep -l java oder pidof java

Vielleicht haben Sie Zombie-Prozesse auf dem System, in diesem Fall lesen Sie hier

Bitek
quelle
0

Versuche dies:

kill -9 $(pgrep Java)

pgrepGibt die PID des Prozesses mit dem Namen "Java" zurück und beendet killsie

MIrra
quelle
Dies sollte im Wesentlichen dasselbe sein wie pkilldas, was er bereits verwendet
Michael Mrozek
-1

Das sollte funktionieren:

killall -9 Java
John Militer
quelle
das ist eigentlich richtig ans. Bitte geben Sie Ihren Kommentar ab, wenn Sie abstimmen.
Roottraveller