linux shell编程 根据端口获取进程pid 直接用命令netstat -anp grep 端口号 在shell中如何获取PID?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell编程 根据端口获取进程pid 直接用命令netstat -anp grep 端口号 在shell中如何获取PID?相关的知识,希望对你有一定的参考价值。

我想要的结果是 shell里
pid = GetPortByPid();
不知如何实现 求助各位大神

如果是要监听的服务端口,我觉得用 l 参数比较好。
然后如下三种方式请参考。
netstat -nlp | grep -w 端口号 | sed -r \'s#.* (.*)/.*#\\1#\'
netstat -nlp | sed -nr \'/端口号/s#.* (.*)/.*#\\1#p\'
netstat -nlp | awk -F\'[ /]*\' \'/端口号/print $(NF-2)\'

参考技术A netstat -anp|grep 3306|awk 'printf $7'|cut -d/ -f1本回答被提问者采纳 参考技术B -anp 中的p 不就是PID了

shell脚本杀掉(kill)端口号对应的PID进程

 

我是用的mac 就是当你本机启动一个python 端口进程, 即使关掉,后台进程依然存在,在启动同端口的进程,或报错提示已被占用

当你lsof -i:端口号(linux--(ss -anpt | grep 22)-->(ss是nestat的简写)) 又会发现不知一个pid进程 kill 很麻烦,所以就写了一个shell脚本,根据你输入的端口号,循环kill掉:

#!/bin/bash
read -p "输入 你要kill的端口号: " a

for i in `lsof -i:$a | awk {print $2} | grep -v PID`;do kill -9 $i;done

 

以上是关于linux shell编程 根据端口获取进程pid 直接用命令netstat -anp grep 端口号 在shell中如何获取PID?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取linux下的进程pid列表

shell脚本杀掉(kill)端口号对应的PID进程

如何在脚本中获取进程ID

Linux SHELL 获取进程ID

linux中如何根据PID获得进程?

如何以编程方式获取正在侦听某个端口的进程的 pid?