Lsof

lsof
開発元 Victor A. Abell
初版 1991年(35年前) (1991)
最新版
4.99.7 ウィキデータを編集 / 2026年6月16日 (4か月前)
リポジトリ ウィキデータを編集
プログラミング
言語
C
サポート状況 開発中
ライセンス BSDライセンス互換
公式サイト lsof.readthedocs.io ウィキデータを編集
テンプレートを表示

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

例

オープン中のファイルには、すべてのプロセスがオープンしているディスク上のファイル、名前付きパイプ、ネットワークソケット、デバイスが含まれる。使用例の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の出力は以下の内容を表している。

関連項目

脚注

  1. ↑ “PGP公開鍵”. 2013年1月15日閲覧。
  2. ↑ “v25i002: lsof - a successor to fstat and ofiles”. comp.sources.unix. 2023年1月10日時点のオリジナルよりアーカイブ。2025年4月27日閲覧。
  3. ↑ lsof-org. “Release lsof 4.99.7 · lsof-org/lsof” (英語). 2026年6月17日閲覧。
  4. ↑ W. Richard Stevens, Bill Fenner, Andrew M. Rudoff (2003), Unix Network Programming: the Sockets networking API, Addison-Wesley Professional, ISBN 0-13-141155-1

外部リンク