特定のポートをリッスンしているプロセスを調べる lsof

http://blog.manabusakai.com/2012/07/inspect-listen-port/

 

特定のポートをリッスンしているプロセスを調べる

Posted on 2012-07-26

Amazon EC2 に Nginx をインストールして起動しようとすると、以下のようなエラーが出て起動に失敗しました。

$ sudo service nginx start

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

nginx: [emerg] still could not bind()

エラーメッセージにある通り、ほかのプロセスが先に 80 番ポートをリッスンしていたのが原因でした。

特定のポートをリッスンしているプロセスを調べるには lsof コマンドが使えます。ポート番号を調べるには i オプションを使います。なお、lsof コマンドを実行するには root 権限が必要です。

$ sudo lsof -i:80

COMMAND   PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME

nginx   27047  root    6u  IPv4 1813885      0t0  TCP *:http (LISTEN)

nginx   27049 nginx    6u  IPv4 1813885      0t0  TCP *:http (LISTEN)

特定のプロセスがポートをリッスンしたまま死んだ場合も PID を調べて kill することができます。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です