「Kill​​ Java」はJavaを殺しません。

「Kill​​ 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問題を解決しました

関連情報