AIXにてListenポートを使用しているプロセスを特定する

投稿者:しんさん        2017/03/08

AIX

Linuxでいうところのlsof -i

  • Listenポートをどのプロセスが使用してんでいるか特定したい

というケースがよくあります。

lsofコマンドが使える環境であれば、lsof -iを使用して下記のように対象プロセスのPIDを調べることができます。

[[email protected] ~]# lsof -i:22
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 2637 root 3u IPv4 14260 0t0 TCP *:ssh (LISTEN)
sshd 2637 root 4u IPv6 14262 0t0 TCP *:ssh (LISTEN)

AIXでlsofを使用できない場合

AIXではlsofが標準インストールされていないため、使用できない環境が多々あります。

少々ダーティな方法ですが、以下のコマンドを使用してlsofと同様に、Listenポートをつかんでいるプロセスを特定できます

  • netstat
  • rmsock

たとえば22番ポート(sshd)をつかんでいるプロセスを知りたい場合、下記のように実行します。

[[email protected] ~]$ netstat -An|grep LISTEN|grep -e '\.22 '|cut -d' ' -f1|xargs -i{} rmsock {} tcpcb
The socket 0xd2008 is being held by proccess 782496 (sshd).

以下の「22」の部分を実際に調べたいポートに置き換えて実行してください。

grep -e '\.22 '

注意点

rmsockコマンドは本来ソケットを除去するためのコマンドのため、一般ユーザーで実行しrootでは実行しない方が良いかと思います。
(私はちょっとこわくてrootでの実行を試してみたことがありません。)

この記事が気に入ったら
いいね ! しよう

Twitter で
  • B! 1
  • LINEへ送る

 - サーバー運用 , , , ,