Lsof

lsof
開発元 Victor A. Abell [1]
最新版
4.94 / 2020年11月11日 (3年前) (2020-11-11) [2]
リポジトリ
  • github.com/lsof-org/lsof
ウィキデータを編集
プログラミング
言語
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.94” (2020年11月11日). 2021年7月9日閲覧。
  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, https://books.google.co.jp/books?vid=ISBN0131411551&id=ptSC4LpwGA0C&pg=RA1-PA897&lpg=RA1-PA897&ots=Kp7AQkfiSm&dq=Lsof&ie=ISO-8859-1&output=html&sig=bbb3jzTxdoa4IlTPpgUP17T7qVU&redir_esc=y&hl=ja 

外部リンク

  • 公式ウェブサイト
  • lsof-lメーリングリスト
  • sourcesのミラー
  • lsof(8) – Linux Administration and Privileged Commands Manual (en)
  • lsof(8) – Darwin and macOS System Manager's Manual
  • Using lsof
  • Lsof FAQ
  • Sam NelsonのPCPスクリプト - Solarisでの"lsof -i"の代替となるツール
  • Glsof - lsofを元に作られた2種類のユーティリティ(クエリとファイルモニタ)
  • Sloth - macOS用のlsofのグラフィカルインターフェイス
  • LSOFのmanページ
Unixコマンド
ファイルとファイルシステム管理
  • cat
  • chattr(英語版)
  • chmod
  • chown
  • chgrp
  • cksum
  • cmp
  • cp
  • dd
  • du
  • df(英語版)
  • file
  • fsck
  • fuser(英語版)
  • ln
  • ls
  • lsof
  • mkdir
  • mount
  • mv
  • pax
  • pwd
  • rm
  • rmdir
  • size
  • split
  • tee
  • touch
  • type(英語版)
  • umask(英語版)
プロセス管理
ユーザ管理/環境
テキスト処理
シェルビルトイン
通信
検索
  • find
  • grep
  • locate(英語版)
  • whatis(英語版)
  • whereis(英語版)
マニュアル
  • apropos(英語版)
  • help(英語版)
  • man
ソフトウェア開発
その他
  • bc
  • dc
  • cal
  • date
  • expr
  • false
  • lp(英語版)
  • lpr
  • od
  • sl
  • sleep
  • stty
  • true
  • tty