Ich verwende gerade Debian und manchmal muss ich Java manuell vom Terminal aus beenden, aber wenn ich es versuche kill #pid#
oder pkill java
nichts 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?
kill
process-management
Simiil
quelle
quelle
killall java
Antworten:
Vielleicht ignoriert es das Signal aus irgendeinem Grund. Hast du es versucht
kill -9
?Aber bitte beachten Sie:
kill -9
Kann 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.quelle
kill -9
ist in der Regel ein letzter Ausweg. Es ist besser , zu versuchen ,kill -11
dannkill -6
zuerst. Wennkill -11
es nicht tötet,kill -6
tut es normalerweise. Versuchen Sie eskill -11
zuerst, warten Sie einige / einige Sekunden, und wenn der Prozess noch läuft, versuchen Sie eskill -6
. Warten Sie einige Sekunden und wenn es immer noch nicht tot ist, können Sie es versuchenkill -9
.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.
quelle
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:
Vielleicht haben Sie Zombie-Prozesse auf dem System, in diesem Fall lesen Sie hier
quelle
Versuche dies:
pgrep
Gibt die PID des Prozesses mit dem Namen "Java" zurück und beendetkill
siequelle
pkill
das, was er bereits verwendetDas sollte funktionieren:
quelle