【Linux】lsofコマンド

 【1】lsof

* LiSt Open Files
 => 開いているファイル群を列挙する
* 待機ポートやプロセスで開かれているファイルを確認する

 【2】用途

* ファイルのオープンなどで別プロセスがつかんでいる場合の調査
* 特定ポートを使用しているプロセスの調査

 【3】環境設定

* 「lsof」でコマンドが受け入れなかった場合

1)インストール

RedHat

sudo yum -y install lsof

Debian

sudo apt-get install lsof

 補足:インストールできない場合

http://shohonoho.g.hatena.ne.jp/talk/20110118/1295336715

# より
netstat -tanp

 【4】コマンド例

例1:ポート80番を使用しているプロセスを確認

# 「-i:XX」で「-i」オプションに続けてポート番号を指定
sudo lsof -i:80

COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx     1142  root    6u  IPv4  24031      0t0  TCP *:http (LISTEN)

補足

 * サービス名も指定可能(例「-i:ssh」)

例2:Tomcatの実行プロセスを確認

[1] jpsを実行(「1273 Bootstrap」など出力される)

jps

[2] 「lsof -p [PID]」を実行

lsof  -p 1273

 参考文献

http://www.atmarkit.co.jp/ait/articles/1510/05/news014.html
http://miyamon-se-exp.hatenablog.jp/entry/2017/04/08/133004

関連記事

ネットワーク系コマンド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2016/07/27/214633