「kill java」はjavaを殺さない


8

私は現在debianを実行していて、ターミナルから手動でjavaを強制終了する必要がある場合がありますが、試してkill #pid#pkill java何も起こりません。コンソール出力がなく(正常です)、Javaはまだ実行中です(正常ではありません)。それを殺す唯一の方法はPCを再起動することです。助言がありますか?


あなたが探しているのはkillall java
roottraveller '21 / 10/21

回答:


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を殺さなければなりません。ただし、これが定期的に発生している場合は、それを引き起こしている問題を修正する必要があります。Kill -9は、何かがうまくいっていないことを意味します。

一般的に、これが発生するのは、深刻なメモリスラッシュモードになったときだけです。つまり、より多くのシステムメモリが必要になるか、起動時にJavaにメモリを与えすぎます。ただし、より一般的には、特に開発中の場合は、「PermGen」メモリが不足したときにこれを確認できます。

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

いずれにせよ、何らかのOutOfMemoryエラーが原因である可能性があります。


それだと思います。私はまだ試していませんが、問題が発生している私のマシンには1GBのRAMがあり、Javaは512MBを割り当てています。
Simiil

1
(このコメントの遅延が長い...)Javaを開発している場合、1 GigのRAMでそれを削減することはほとんどできません。弾丸をかみ砕いて、少なくとも2にアップグレードし、4 +を狙います。
kāgii

0

これこれこれを読んでください。これは、killコマンドの動作を理解するのに役立ちます。

あなたはjava pidを検索することができます:

pgrep -l javaまたはpidof java

多分あなたはシステムにゾンビプロセスを持っています、その場合ここを読んでください


0

これを試して:

kill -9 $(pgrep Java)

pgrep「Java」という名前のプロセスのPIDを返し、killそれを強制終了します


これは本質的にと同じである必要がありますpkill。これは、彼がすでに使用しているものです
Michael Mrozek

-1

これはうまくいくはずです:

killall -9 Java

これは実際には正しいansです。反対票を投じる場合はコメントを書き込んでください。
roottraveller
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.