/tmpがいっぱいですが...空です。

/tmpがいっぱいですが...空です。

私が使用するPythonプログラムでは、ディレクトリをnp.memmaps活用して/tmp大規模な配列を処理します。定期的に削除するために使用するたびにこのコードを実行してください/tmprm -rf /tmp/*しかし、最近私のコードが動作を停止し、「バスエラー(コアダンプ)」が発生しました。

端末でオートコンプリートを使用しても、結果は次のようになりますbash: cannot create temp file for here-document: No space left on device

df -h私はタイピングが私に犯人を与えたと思います。

tmpfs            32G   32G     0 100% /tmp

しかし、走るのはsudo rm -rf /tmp/*私に戻ってくるだけです。

tmpfs            32G   30G  1,9G  94% /tmp

何が起こっていて、どのように解決するのか知っていますか?

答え1

このコマンドは真実を教えてくれます。

sudo lsof -n | grep /tmp |grep deleted

Unixでは、削除されたファイルはファイルシステムにまだ存在し、そのファイルを使用しているアプリケーションはファイルを閉じるか、アプリケーションが終了するまでスペースを取ります。

したがって、削除されたファイルが開いているプロセスを見つけて再起動または終了します。

上記のファイル記述子を使用してアプリケーションを終了せずに強制的に閉じることをお勧めしますが、Linuxカーネルはrevoke()システムコールをサポートしません。https://bugzilla.kernel.org/show_bug.cgi?id=14505

関連情報