fuserコマンドを使ってファイルを使用しているプロセスを特定する方法を以下に記します。
同じ結果となる別コマンドについては、関連記事・関連資料に公開していますので活用してください。
OpenOffice.orgのCalcファイル(fuser-test.ods)を指定しfuserを実行した例です。
fuserコマンドを実行したOSはCentOS5になります。
また、一般ユーザ権限では、/sbinにPATHが通っていないので、/sbin/fuserとフルパスでfuserコマンドを実行しています。
fuserコマンドに-aオプションとファイルを指定し実行したときの出力です。
プロセスIDが特定できました。
$ /sbin/fuser -a ./fuser-test.ods fuser-test.ods: 25816
特定したプロセスIDをpsコマンドで確認すると、openoffice.orgのcalcが使用しているのが確認できます。
$ ps 25816 PID TTY STAT TIME COMMAND 25816 ? Sl 0:01 /usr/lib64/openoffice.org3/program/scalc.bin -calc
上記と同じ動作を-vオプションを追加しfuserコマンドを実行したときの出力です。
$ /sbin/fuser -av $HOME/fuser-test.ods USER PID ACCESS COMMAND /home/sakura/fuser-test.ods: sakura 25816 F.... scalc.bin
以上、fuserコマンドをつかって指定したファイルがどのプロセスが使用しているかを特定する方法でした。
上記の関連記事・関連資料には、同一の事を別のコマンドで実現する方法も公開していますのでご活用ください。