linux通过端口杀进程

启动某些服务时有时候端口被专用 这是可以使用别的端口或把使用该端口的进程kill掉 这里以kill掉tomcat为例

使用netstat和grep与awk定位服务pid

[root@ceshi0 ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5861/httpd.bin      
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      17292/java          
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      17292/java         
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      17292/java          
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5861/httpd.bin      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      28705/sshd         
tcp6       0      0 :::3306                 :::*                    LISTEN      13572/mysqld        

如果是udp协议把u改成t

通过上面的查询结果可以看到pid为17292 开了3个端口

不过当服务过多时很难定位到结果 可以使用grep过滤

[root@ceshi0 ~]# netstat -tnlp|grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      17292/java


如果使用脚本的话还可以结合分词获获取pid在结合kill 把服务kill掉

输出地7列

[root@ceshi0 ~]# netstat -tnlp|grep 8080 |awk '{print$7}'
17292/java

只读取端口号

[root@ceshi0 ~]# netstat -tnlp|grep 8080 |awk '{print$7}'| awk -F"/" '{print$1}'
17292

使用kill把找到的pid所对应的进程干掉

[root@ceshi0 ~]# kill -9 17292
[root@ceshi0 ~]# netstat -tnlp|grep 8080 |awk '{print$7}'| awk -F"/" '{print$1}'
[root@ceshi0 ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5861/httpd.bin         
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5861/httpd.bin      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      28705/sshd          
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      14885/postgres.bin  
tcp6       0      0 :::3306                 :::*                    LISTEN      13572/mysqld       
[root@ceshi0 ~]#


可以看到17292所对应的进程被干掉了


下面查询8080端口所对应进程pid同时kill掉

[root@ceshi0 ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      5861/httpd.bin      
tcp        0      0 0.0.0.0:8009            0.0.0.0:*               LISTEN      19264/java              
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      19264/java          
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5861/httpd.bin      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      28705/sshd          
tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      14885/postgres.bin  
tcp6       0      0 :::3306                 :::*                    LISTEN      13572/mysqld        
 

netstat10个用法

发布了100 篇原创文章 · 获赞 43 · 访问量 26万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览