博客
关于我
Linux下通过端口杀死进程
阅读量:793 次
发布时间:2023-02-03

本文共 1641 字,大约阅读时间需要 5 分钟。

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

程序可以一点一点来:

1 查看占用端口号的服务

[root@aslibra 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处理:

[root@aslibra root]# netstat -nlp | grep :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23946/


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

3 读取出端口号

[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}'
23946/


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

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

[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'
23946


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

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

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

[root@aslibra 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://www.cnblogs.com/peter9/archive/2011/07/28/2362156.html

你可能感兴趣的文章
Linux下通过端口杀死进程
查看>>
Linux下部署maven-web项目,包括JDK安装、TOMCAT安装、MYSQL安装详细解释
查看>>
linux下配置Java环境变量
查看>>
Linux下配置Mysql允许远程访问
查看>>
Linux下配置NFS简单步骤
查看>>
Linux下配置tomcat,resin,JDK
查看>>
Linux下配置无密码登录
查看>>
linux下集成脚启动本编写——Rabbitmq mysql redis apache
查看>>
Linux下,C++判断指定路径下,是否存在wps打开的文件
查看>>
Linux下,Docker出现Cannot connect to the Docker daemon. Is the docker daemon running on this host错误解决办法
查看>>
linux下,websocketpp实现长连接,C++代码实现
查看>>
Linux下,配置nodejs环境两种方法,并使用cron系统任务定时启动web服务
查看>>
Linux专家揭秘:Keepalived的安装和VIP自动漂移 - 简单步骤,大功效!
查看>>
Linux中 dir 命令还能这样玩!
查看>>
Linux中.a,.la,.o,.so文件的意义和编程实现
查看>>
linux中6个被低估但很有用的命令
查看>>
Linux中Docker的使用
查看>>
linux中ElasticSearch的安装 安装ES&Kibana 配置IK分词器(环境搭建)
查看>>
Linux中find常见用法示例
查看>>
Linux中find常见用法示例
查看>>