web-dev-qa-db-ja.com

ファイルが別のプロセスによって開かれているかどうかを確認する

与えられた名前のファイルが何らかのプロセス(私たちのプロセス以外)によって開かれているかどうかを確認する方法はありますか?

これはFreeBSDで必要です。 Linuxをサポートすることもできます。私はPerlで書いています。

ルートアクセスを必要とする手法は適していません。

3
porton

fstat コマンドを使用する必要があります。これはuserとして実行できます。

fstatユーティリティは、開いているファイルを識別します。明示的に開かれたファイルは、プロセスによって開かれていると見なされます。これは、そのプロセスの作業ディレクトリ、ルートディレクトリ、jailルートディレクトリ、アクティブな実行可能テキスト、またはカーネルトレースファイルです。オプションを指定しない場合、fstatはシステムで開いているすべてのファイルについて報告します。

1
GAD3R