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


14

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

# 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中使用时,如何获得绑定到端口的程序的完整路径?

Answers:


10

按照IBM的建议:使用lsof -i -n并查找端口XY。如果要从解析输出lsof,请使用该-F标志并使用awk解析输出。

您可以获取AIX V5的预编译二进制文件。我不知道V6是否有预编译的二进制文件。如果没有,请获取源代码并进行编译。


lsof在AIX:P上并不总是可用
LanceBaynes 2011年


在机器上并不总是存在“ lsof” ...但是我可以将此作为一个很好的答案(其他的答案也是“ good”!ty)
LanceBaynes

4

尝试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,使用的column1输出中给出的地址netstat,并使用tcpcb数据库,将返回有关保存该套接字的进程的信息,包括pid和名称。

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

您可以在IBM Systems Magazine上查看此文章,以获取有关此内容的更多信息。


这不是在我的AIX上正确执行的事件
Kiwy 2014年

1

查找应用程序锁定端口的最快方法之一是使用lsoflsof64

lsof64 -nP | grep $PortNumber

要么

lsof -nP | grep $PortNumber

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

proctree $pid

0

我对AIX不熟悉,但是您是否尝试使用we格式化参数ps

ps uwx | grep 1482
# or 
ps uex | grep 1482

您可以在线查看手册。AIX ps确实支持传统的BSD标志,但是您指示的标志如何提供帮助?
吉尔(Gilles)“所以,别再邪恶了”,

嗯,看起来他们在AIX上做了不同的事情。尽管您参考的文档包括一个l选项,该选项显示“ USER,PID,%CPU,%MEM,SZ,RSS,TTY,STAT,STIME,TIME和COMMAND字段”
frogstarr78

0
netstat -ape | grep $PortNumber

您能解释一下该命令在做什么吗?没有理由地粘贴代码不是很有帮助。
13年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.