【UNIX】fuserコマンドメモ


fuserコマンドのメモ

fuserコマンドは「ファイルに対して何らかの操作をしているプロセスを表示」するコマンド。
使い方はいたって単純で

  
fuser [ファイル名]  

という感じである。
結果は↓みたいな感じの標準出力になる。

  
/home/test/test.log:      869o  

この「869o」の部分が「何らかの操作をしているプロセス」のPID。
厳密には「869」の部分だけが該当する。(ケツになんで"o"がつくかは忘れた)

これが基本的な使い方だが、
オプション未指定(デフォルト)だと「参照しかしていない」ようなプロセスも表示される。
→例えばログファイルに対いて、tail -fでただ眺めているだけなようなプロセスも表示される。
fuserの出番は得てして「なんかファイルが掴まれて書き込めねえ、誰が掴んでるんだこの野郎!」という場面で登場するので、
そのファイルに対して書込み中の(排他制御を行っている)プロセスが知りたくなる。
こういう場合は「-n」オプションを付けることでそのプロセスに限定して表示させることができる↓

  
fuser -n [ファイル名]  

-nオプションのmanコマンドの説明文は

  
     -n        ファイルに対して非ブロッキング強制ロックを保持して  
               いるプロセスだけを表示します。  

となっている。なんとなくそれっぽい説明になっていることがわかる。