lsof

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
lsof
開発元 Victor A. Abell [1]
最新版 4.89 / 2015年6月7日(3年前) (2015-06-07 [2]
プログラミング言語 C
サポート状況 開発中
ライセンス BSDライセンス互換
公式サイト people.freebsd.org/~abe/
テンプレートを表示

lsof(エルエスオーエフ)コマンドは"list open files"の意味であり、多くのUnix系オペレーティングシステムで、オープン中のファイルやそのファイルをオープンしているプロセスのリストを出力するコマンドである。このオープンソースのユーティリティは、パデュー大学コンピューティングセンターのアソシエートディレクターを退職した、ビクター・A・アベルによって開発・サポートされた。lsofはいくつかのUnix系OSで動作し、サポートされている。[3]

[編集]

オープン中のファイルには、すべてのプロセスがオープンしているディスク上のファイル、名前付きパイプ、ネットワークソケット、デバイスが含まれる。使用例の1つとしては、(特定できない何らかの)ファイルが使用中のであるために、ディスクがアンマウントできない時である。オープン中のファイルの一覧を確認することで(必要に応じてフィルタをかけることで)ファイルを使用しているプロセスを特定することができる。

# lsof /var
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
syslogd     350     root    5w  VREG  222,5        0 440818 /var/adm/messages
syslogd     350     root    6w  VREG  222,5   339098   6248 /var/log/syslog
cron        353     root  cwd   VDIR  222,5      512 254550 /var -- atjobs

特定のデーモンに関連づけられているポートを確認するには、次のようにする。

# lsof -i -n -P | grep sendmail
sendmail  31649    root    4u  IPv4 521738       TCP *:25 (LISTEN)

上のコマンドの実行結果より、「sendmail」が標準ポート "25" 版をlistenしていることが確認できる。

-i
IPソケットをリストする。
-n
ホスト名の解決を行わない。(つまり、DNSを使用しない)
-P
ポート名の解決を行わない。(つまり、ポート名の代わりにポート番号をリストする)

他には、lsof -Uを使用すれば、Unixソケットを一覧することもできる。

lsofの出力[編集]

lsofの出力は以下の内容を表している。

  • そのファイルをオープンしているプロセスのID(PID)
  • そのプロセスのグループID(PGID)(オプション)
  • 親プロセスのプロセスID(PPID)(オプション)
  • プロセスが実行しているコマンド
  • プロセスのオーナー
  • プロセスが使用している、実行中のテキストファイルおよび共有ライブラリを含む、すべてのファイルのそれぞれに対して以下の項目を表示する
    • 可能なら、そのファイルのファイル記述子の数
    • ファイルのアクセスモード
    • ファイルのロック状態
    • ファイルのデバイス数
    • ファイルのinode数
    • ファイルのサイズまたはオフセット
    • ファイルが格納されているファイルシステムの名前
    • ファイルのパス名の利用可能なすべてのコンポーネント
    • ファイルのストリームコンポーネントの名前
    • ファイルのローカルおよびリモートのネットワークアドレス
    • ファイルのTLIネットワーク(主にUDP)の状態
    • ファイルのTCPの状態、読み込みキューの長さ、および、書き込みキューの長さ
    • ファイルのTCPウィンドウの読み込みおよび書き込みの長さ(Solarisのみ)
    • その他のファイルまたはファイルタイプ固有の値

関連項目[編集]

脚注[編集]

  1. ^ PGP公開鍵”. 2013年1月15日閲覧。
  2. ^ 4.89のPGP署名” (2015年5月7日). 2015年5月7日閲覧。
  3. ^ W. Richard Stevens, Bill Fenner, Andrew M. Rudoff (2003), Unix Network Programming: the Sockets networking API, Addison-Wesley Professional, ISBN 0-13-141155-1, http://books.google.com/books?vid=ISBN0131411551&id=ptSC4LpwGA0C&pg=RA1-PA897&lpg=RA1-PA897&ots=Kp7AQkfiSm&dq=Lsof&ie=ISO-8859-1&output=html&sig=bbb3jzTxdoa4IlTPpgUP17T7qVU 

外部リンク[編集]