AIX系统查看某个进程占用了该端口,
1.根据端口查进程
netstat -Aan | grep LISTEN //查看主机打开的所有监听端口
netstat -Aan | grep <portnumber> //查看指定端口的PCB/ADDR
找到该端口连接对应的 PCB/ADDR 和连接的协议类型。
注:PCB ----Protocol Control Block
2. 如果是 tcp 连接,则 rmsock <PCB/ADDR> tcpcb
如果是 udp 连接,则 rmsock <PCB/ADDR> inpcb
下面我们以 ssh 服务所使用的 22 号端口为例,说明该方法:
netstat -Aan | grep *.22
提示:
f1000e000192cbb8 tcp 0 0 *.23 *.* LISTEN
可以看到 PCB/ADDR 为 f1000e000192cbb8 ,且协议类型为 tcp 。
rmsock f1000e000192cbb8 tcpcb
提示:
The socket 0xf1000e000192c808 is being held by proccess 3932278 (sshd).
命令报告该端口正在被 sshd 进程使用, PID 为3932278 。
可进一步查看进程序的执行文件
ps -ef | grep 3932278
注:如果执行 rcmsock <PCB/ADDR> tcpcb 报以下错误:
usage: rmsock Addr TypeOfAddr
原因:当进程数超过1907个时会有报错,这是个bug, 解决办法升级系统补丁。