4

/tmp/.java_pid<...>Linux マシンに大量のファイルがあることに気付きました。fileコマンドは、それらがソケットであると言います。それらがJavaによって作成されたと仮定すると、Javaがそれらをクリーンアップしないのはなぜだろうか。Javaでそれらをクリーンアップするか、作成しないようにする方法は?

4

2 に答える 2

7

これらのファイルは、デバッグをサポートするために JVM によって作成されます。attachこれは、 APIの一部です。

Java でそれらを作成したくない場合は、デバッグを有効にせずに Java アプリを起動します。

対応するpidを持つjvmがない場合は、それらを安全に削除できます... cronジョブに非常に適したタスクです。

ちょっとしたバッシュ:

for file in /tmp/.java-[0-9]*; do
  [ -d /proc/${file#*.java-} ] || rm -f $file
done
于 2013-04-17T15:48:13.343 に答える
2

pid ファイルは通常、アプリケーションがプロセス ID を保存する場所であるため、ユーザーは後で簡単にプロセスを強制終了できます。これらのアプリケーションは、終了時にこれらのファイルを削除する必要があります。

これらのファイルについてはあまり心配しませんが、ファイルの数が増えていて削除されていない場合を除き、アプリケーションが正しくシャットダウンされていないことを示す兆候である可能性があります。

于 2013-04-17T15:40:34.720 に答える