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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下怎么根据端口号杀死进程相关的知识,希望对你有一定的参考价值。

参考技术A 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 '[']本回答被提问者采纳
参考技术B kill -9 3306

Windows - 杀死占用某个端口号的进程

Windows不像Linux,Unix那样,ps -ef 查出端口和进程号,然后根据进程号直接kill进程。

Windows根据端口号杀死进程要分三步:

第一步 根据 端口号 寻找 进程号

C:\>netstat -aon|findstr "9050"

TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2056

看到了吗,端口被进程号为2056的进程占用,继续执行下面命令:

第二步 根据 进程号 寻找 进程名称

C:\>tasklist|findstr "2056"

tor.exe 2056 Console 0 16,064 K

很清楚吧,tor占用了你的端口

第三步,在任务管理器下结束 tor.exe 该进程

以上是关于linux下怎么根据端口号杀死进程的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统根据端口号来查看其进程并杀死进程

Windows - 杀死占用某个端口号的进程

sh linux下通过端口号杀死后台进程

cmd批处理bat命令根据端口号一键关闭杀死对应进程程序

Mac下使用终端查看某个端口号对应的进程和杀死进程

linux系统怎么kill进程