Linux下通過端口殺死進程


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的介紹,挺使用
當然,有更加精簡的寫法,這里只是描述思路的實現


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM