在 Linux 下我可以使用netstat -tulpnw
and 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