在AIX下,如何获取绑定到端口的程序的完整路径?

在AIX下,如何获取绑定到端口的程序的完整路径?

在 Linux 下我可以使用netstat -tulpnwand ps,如下所示:

# netstat -tulpnw | grep :53
tcp        0      0 127.0.0.1:53                0.0.0.0:*                   LISTEN      1482/named          
udp        0      0 127.0.0.1:53                0.0.0.0:*                               1482/named          

# ps aux | fgrep 1482
named     1482  0.0  1.0  93656 44900 ?        Ssl  Sep06   3:17 /usr/sbin/named -u named
root     20221  0.0  0.0   4144   552 pts/0    R+   21:09   0:00 fgrep --color=auto 1482
# 

ksh在AIX 6中使用时如何获取绑定到端口的程序的完整路径?

答案1

作为IBM 推荐:使用lsof -i -n并寻找端口 XY。如果您想要来自 的可解析输出lsof,请使用该-F标志并使用 awk 解析输出。

你可以得到AIX V5 的预编译二进制文件。我不知道是否有V6的预编译二进制文件;如果没有,请获取来源并编译它。

答案2

尝试netstat与 一起使用rmsock

port=$1
addr=`netstat -Aan | grep $port | awk '{print $1}`
pid=`rmsock $addr tcpcb | awk '{print $9}'`
ps -ef | grep $pid

对于netstat-A显示与套接字关联的任何协议控制块的地址,该-a选项显示所有套接字的状态,包括服务器进程的状态,并且该-n选项以数字形式给出输出,因此您不会浪费时间尝试解析地址。

rmsock,使用 的第 1 列输出中给出的地址netstat并使用tcpcb数据库,将返回有关持有该套接字的进程的信息,包括 pid 和名称。

然后您可以使用ps -ef | grep $pid来获取进程信息。

你可以看到本文有关这方面的更多信息,请访问 IBM Systems Magazine。

答案3

找到应用程序锁定端口的最快方法之一是使用拉索夫或者lsof64:

lsof64 -nP | grep $PortNumber

或者

lsof -nP | grep $PortNumber

上面将返回进程 ID 锁定/使用给定的端口号。一旦你拥有它,然后在下面运行以查找正在运行的应用程序/进程

proctree $pid

答案4

netstat -ape | grep $PortNumber

相关内容