通过端口查找进程

AIX:

ps -ef | awk -v pid=$(rmsock `netstat -Aan|grep 11000|awk 'NR==1 {print $1}'` tcpcb|awk '{print $(NF-1)}') '$2==pid{print}'

解析:

1、netstat -Aan|grep 11000    --Shows the address of any protocol control blocks associated with the sockets

2、netstat -Aan|grep 11000|awk 'NR==1 {print $1}'   --显示第一行的第一列,此处并不严谨

3、rmsock `netstat -Aan|grep 11000|awk 'NR==1 {print $1}'` tcpcb   --除去不包含文件描述符的套接字,如果发现匹配,文件描述符和主进程状态显示给用户。如果没找到匹配,对该套接字执行异常终止操作,所以此命令不会去终止被进程hold的套接字,通过 /var/adm/rmsock.log记录“socket 0xf1000500002b5808 held by process 9699436 (java) can't be removed.“也可以看出。

rmsock 命令除去不包含文件描述符的套接字。 它接受 socket、tcpcb、inpcb、ripcb 或 rawcb 地址并将其转换成套接字地址。 然后检查每个进程所有打开的文件以查找套接字的匹配。 如果没找到匹配,对该套接字执行异常终止操作,而不考虑套接字linger 选项的存在。套接字保留的端口号释放。如果发现匹配,文件描述符和主进程状态显示给用户。结果发送到 syslogd 并在 /var/adm/rmsock.log 文件中记录。

4、rmsock `netstat -Aan|grep 11000|awk 'NR==1 {print $1}'` tcpcb|awk '{print $(NF-1)}'  --后面一个awk是取倒数第二列

5、awk -v pid=$(rmsock `netstat -Aan|grep 11000|awk 'NR==1 {print $1}'` tcpcb|awk '{print $(NF-1)}') '$2==pid{print}'  --最外层awk取将取到的进程号转给参数pid,并与所有第二列进行比较,相等输入,这样做得目的除去以此进程为父进程的子进程。

 

 

LINUX:

ps -ef|awk -v pid=$(lsof -i :12003|awk 'NR==2 {print $2}') '$2==pid{print}'

解析同AIX

 

转载于:https://www.cnblogs.com/painsle/p/5712390.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值