lsofとGLSOFについて
lsofについて
lsofは、プロセスが使用しているファイルやTCP/IPの特定のポート番号を使用したプロセスを調べることができる。実行するのに管理者権限が必要な場合があり、ビルド時の設定(HASSECURITYやHASNOSOCKSECURITY)による。手元のGentooでは管理者権限は不要になっているため、下の例は一般ユーザで実行している。
(「notepad」で始まるプロセスが使用しているTTFフォントを表示) $ lsof -c notepad | grep ttf notepad.e 12690 user mem REG 8,8 3353352 618964 /usr/share/fonts/ipamonafont/ipagui-mona.ttf notepad.e 12690 user mem REG 8,8 6136 474325 /usr/share/wine/fonts/marlett.ttf (HTTPクライアントにおけるポートの状態確認の例) $ lsof -i:http COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME firefox-b 13879 user 46u IPv4 2036648 TCP [ローカルIP]:[ローカルポート]->[リモートIP]:http (ESTABLISHED) firefox-b 13879 user 49u IPv4 2036649 TCP [ローカルIP]:[ローカルポート]->[リモートIP]:http (ESTABLISHED) (ポートの待ち受け状態確認の例) $ lsof -i:10025,10110 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME thunderbi 12575 user 14u IPv4 2030858 TCP localhost:10025 (LISTEN) thunderbi 12575 user 15u IPv4 2030859 TCP localhost:10110 (LISTEN)
使い方については
[id:hogem:20070223:1172221315]
も参照。
他の変わった使い方として、ファイルの削除後で、かつそのファイルが現在いずれかのプロセスにより使用されている場合に限り、誤って消してしまったファイルの復元に使うことも可能。
このURLのページの要領で実験したところ、確かにファイルは復元できた。「消したファイルが使用中」という限定された状況でのみ有効だが、知っていると何かの役に立つ可能性はある。
GLSOF
GLSOF(glsof.sourceforge.net)は、結果の自動更新機能を持ったlsofのGUIフロントエンド。GTK+ 2の他にGNOMEのライブラリも要求する。検索の条件(結果の絞り方)を「クエリ」として左側に登録し、結果を自動もしくは手動で更新する。
更新を行うとlsofが実行され、クエリ名の下に該当プロセスがぶら下がる形で表示され、各プロセスを選択すると、プロセスごとの詳細が右側にグラフィカルに一覧表示される。
プロセス詳細は上の「Search:」の部分から各項目(プロセスIDやユーザID、使用ファイルなど)もしくは任意の項目から検索を行うこともできる。
結果の自動更新は「Autorefresh options」の
- Timestep(s): 更新の間隔(秒単位・短すぎてもダメ)
- Number of autorefreshes: 更新する回数
で指定後、「実行」のボタンを押す(途中で止めることも可能)。更新中の数秒は結果が見えなくなるため、あまり間隔を短くしすぎても使いにくい。
(2015/1/10)このツールはその後FilemonitorとQueriesの2つのツール群として変わっている。
関連URL:
- opentechpress.jp/developer/06/11/23/0451251.shtml
使用したバージョン:
- lsof 4.78(4.78-r2)
- GLSOF 0.10.0-pre-alpha4