【エルエスオーエフ】
lsof とは?
最終更新:
💡 開いているファイルやソケットを、条件で調べる
Linuxや対応するUnix系OSで、プロセスが開いているファイルなどの情報を調べるコマンド。ソケットや削除済みのファイルも対象になりますが、見える情報は権限・OS・ビルド設定などに依存します。
📌 このページのポイント
- 通常のファイルだけでなく、ソケット・パイプなどの情報も扱う
- lsof -p 1234はPID 1234の例。番号は実際の対象へ置き換える
- TCPの待ち受けと、そのポートに関係する接続全体は区別する
- 複数の選択条件は通常OR。-aを付けると条件をANDで絞る
- 結果が空でも、権限や対応の制限で見えていない可能性がある
lsofは何を調べるの?
ポート8080で待ち受けているプロセスは?
削除したのに容量が空かないときにも使える?
見つけたPIDをすぐ止めればよい?
まず所有者、コマンド、ファイル、サービスへの影響を確認しよう。PIDだけで止めると別の作業やサービスを壊すかもしれない。結果が空のときも、警告や権限、名前空間、実装の対応を確認してから判断するんだ。
もっと詳しく知りたい人へ
lsof +Dでディレクトリを調べればよい?
たとえばlsof +D /var/logはディレクトリの下を再帰的に調べます。大きいツリーでは時間やメモリを使い、権限、シンボリックリンク、マウントを越える扱いにも条件があります。調査範囲を決め、OSと実装の仕様を確認してください。
まとめ:ざっくりこれだけ覚えればOK!
「lsof」って出てきたら「開いているファイルやソケットを調べる道具」と思えばだいたいOK!
📖 おまけ:英語の意味
「List Open Files」 = 開いているファイルを一覧表示する
💬 lsofはlist open filesを縮めた名前です。開かれている対象の情報を調べるもので、過去のすべてのアクセスを記録する監査ログではありません。