AIXにてListenポートを使用しているプロセスを特定する
投稿者:しんさん 2017/03/08

Linuxでいうところのlsof -i
- Listenポートをどのプロセスが使用してんでいるか特定したい
というケースがよくあります。
lsofコマンドが使える環境であれば、lsof -iを使用して下記のように対象プロセスのPIDを調べることができます。
[root@testsv ~]# 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)をつかんでいるプロセスを知りたい場合、下記のように実行します。
[user@testsv ~]$ 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での実行を試してみたことがありません。)