与えられた名前のファイルが何らかのプロセス(私たちのプロセス以外)によって開かれているかどうかを確認する方法はありますか?
これはFreeBSDで必要です。 Linuxをサポートすることもできます。私はPerlで書いています。
ルートアクセスを必要とする手法は適していません。
fstat
コマンドを使用する必要があります。これはuser
として実行できます。
fstat
ユーティリティは、開いているファイルを識別します。明示的に開かれたファイルは、プロセスによって開かれていると見なされます。これは、そのプロセスの作業ディレクトリ、ルートディレクトリ、jailルートディレクトリ、アクティブな実行可能テキスト、またはカーネルトレースファイルです。オプションを指定しない場合、fstatはシステムで開いているすべてのファイルについて報告します。