2017-10-23 6 views
-1

私はJavaプロセスを実行しています。ファイルの場所は/ tmpです(つまり、これらのファイルを排他的に作成しているわけではありません)。そのような出来事の理由とそれを克服する方法は何でしょうか?削除されたファイルは開いたままになっています巨大なディスクスペースを消費します

+1

ファイルをどのくらい正確に削除しますか? – Sorontur

+0

削除したファイルを開く方法は? – Alex

+0

@Sorontur ..ファイルを削除しないでください..私はjusが大文字小文字について知りに来て、問題を解決したいと思っています – kalyan

答えて

0

これは、プロセスがファイルを使用している間に別のプロセスがそのファイルを削除した場合など、Linuxで発生します。ファイルは削除されたように見えますが、プロセスの中でファイル記述子が使用されている限り、カーネルはスペースを解放しません。

スペースを解放するには、プログラムにファイル記述子を閉じるように指示する必要があります。これは完全にプログラム設計に依存し、可能ではないかもしれません。たとえば、これがワープロの場合は、メインメニューの[ファイル] - [閉じる]を選択します。

ファイルを閉じるようにプログラムに指示することができない場合、最後の選択肢はプロセスを終了することです。

再生したい場合は、gdbなどのデバッガで処理することもできます。ディスクリプタを見つけて手動で閉じることができます。これにより、プログラムがクラッシュしたり、予期せず動作する可能性があります。

ファイルが突然クローズされるすべてのケースでは、ファイルの内容が破損する可能性があります。

Windowsではさまざまなロックのセマンティクスが使用され、ファイルが開いている場合は削除されないため、この問題はWindowsでは発生しないと思います。

関連する問題