スライスからディレクトリを削除しましたが、mmf
戻ってきました。サイズは依然として同じであり、増加し続けます。ディレクトリを削除する理由は、そのディレクトリからログを生成したプロセスへのリンクが見つからないためです。
現在82%で、2時間ごとに増加し続けます。
プロセスを識別して終了する方法はありますか?このファイルを生成したプロセスを解放するためにボックスを再起動できますか?
答え1
リンクされていない(削除されていない)ファイルに書き込んでいるプロセスを見つける必要があります。すべてのUnixおよびUnixファミリオペレーティングシステムでは、プロセスは名前なしでディレクトリに開かれたファイルを保持できます。これは、ファイルデータとディスクブロックを保持する権限とディスクデータ構造が名前とディレクトリの場所と異なるUnixファイルシステム設計の結果です。これがシステムコールの理由ですunlink(const char *pathname)
。システムコールが実行するすべての作業は、ファイル内の可能ないくつかの名前の1つを削除することです。プロセスがファイルを開くと、ファイルは削除されず、名前のみが削除されます。
何とかプロセスを見つけて終了する必要があります。 Solarisを使用したかどうかはかなりです。時々、Solarisシステムにこのプログラムがインストールされていることがわかりますlsof
。これを使用して、問題のあるプロセスを見つけることができます。 Solarisには/proc
ファイルシステムがありますが、/proc
開いているファイルを見つけるのはLinuxほど簡単ではありません。再起動すると問題が解決する可能性がありますが、これは大胆な対策のようです。