linux下怎么根据端口号杀死进程

来源:互联网 发布:百度mp3歌曲大全知昕 编辑:程序博客网 时间:2024/04/29 15:06
  1. netstat -nlp 查看占用端口号的服务
  2. 找到该端口号的进程
  3. 找到该进程id
  4. kill它

程序可以一点一点来:

  1. 查看占用端口号的服务
[root@aslibra root]# netstat -nlpActive 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    Pathunix  2      [ ACC ]     STREAM     LISTENING     827412 23946/              /tmp/mysql.sockunix  2      [ ACC ]     STREAM     LISTENING     733272 12711/              ./mysql.sock
  1. 可以用grep筛选一下,看看规律,找到有 :3306 的一行就好
    用管道符给grep处理:
[root@aslibra root]# netstat -nlp | grep :3306tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23946/

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

  1. 读取出端口号
[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}'23946/

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

  1. 取/前面的数字就可以了,这里还是可以用awk处理
[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }'23946

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

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

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

[root@aslibra root]# netstat -nlp | grep :3306 | awk '{print $7}' | awk -F"/" '{ print $1 }' | killkill: 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 }'[']
0 0
原创粉丝点击