如何一个命令停止某个端口的服务进程-Linux

我们先看看这么做的过程,把处理方式整理一下,然后才能用程序处理: 

1 netstat -nlp 查看占用端口号的服务 
2 找到该端口号的进程 
3 找到该进程id 
4 kill它 

程序可以一点一点来: 

1 查看占用端口号的服务 

aliyunzixun@xxx.com root]# netstat -nlp 
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:3306            0.0.0.0:*               LISTEN      23946/               
tcp        0      0 0.0.0.0:3307            0.0.0.0:*               LISTEN      12711/               
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3936/httpd          
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      3910/               
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3753/sshd          
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      3786/               
Active UNIX domain sockets (only servers) 
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path 
unix  2      [ ACC ]     STREAM     LISTENING     827412 23946/              /tmp/mysql.sock 
unix  2      [ ACC ]     STREAM     LISTENING     733272 12711/              ./mysql.sock 

(省掉了一些内容) 

2 可以用grep筛选一下,看看规律,找到有 :3306 的一行就好 
用管道符给grep处理: 

aliyunzixun@xxx.com root]# netstat -nlp | grep :3306 
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23946/ 


既然取出一行了,那就容易了,再筛选一下,用awk分割取出其中一个 

3 读取出端口号 

aliyunzixun@xxx.com root]# netstat -nlp | grep :3306 | awk '{print $7}' 
23946/ 


意思是取第七个字段,这里默认应该是用tab字符分割的,已经读取出来了,但是还得拿到/前面的数字 

4 取/前面的数字就可以了,这里还是可以用awk处理 

aliyunzixun@xxx.com root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }' 
23946 


意思是用/符号分割,取第一部分 

5 然后把这个数字传给kill就可以 

kill命令不能跟在管道符后面继续处理了,会出错的 

aliyunzixun@xxx.com root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }' | kill 
kill: usage: kill [-s sigspec | -n signum | -sigspec] [pid | job]... or kill -l [sigspec] 


需要用到"`"操作符,它可以执行一个语句,这个可以如此执行: 

kill `netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'` 

好了,任务完成了,之后贴一下awk的介绍,挺使用的 
当然,有更加精简的写法,这里只是描述思路的实现

转自:https://blog.csdn.net/baidu_29701003/article/details/83009156

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值