日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux shell脚本关闭指定端口号的进程

發布時間:2024/9/27 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux shell脚本关闭指定端口号的进程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關閉指定進程中關鍵詞的進程,最好找一個唯一標識 例如:項目名稱 等等

文章目錄

          • 一、管道方式
            • 1. 關閉指定程序進程號
            • 2. 關閉指定端口號的進程(推薦使用)
            • 3. 關閉指定進程關鍵詞的進程(推薦使用)
            • 4. 操作記錄
            • 5. 知識補充
          • 二、jps方式
            • 2.1. 使用場景說明
            • 2.2. 不同程序不同進程
          • 三、管道另一種方式
            • 3.1. 腳本編寫思路
            • 3.2. 查看占用端口號的服務
            • 3.3. 篩選看規律
            • 3.4. 讀取出端口號
            • 3.5. 分割處理
            • 3.6. 然后把這個數字傳給kill就可以

一、管道方式
1. 關閉指定程序進程號
#1.關閉指定程序的進程 ps -ef | grep java | grep -v grep | cut -c 9-15 | xargs kill -9注:如果是以程序來關閉的場景,這一種僅限于該java程序只啟動了一個#2.關閉指定端口號的進程(推薦使用) ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9#3.關閉指定進程中關鍵詞的進程 ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:采用進程中唯一標識關閉的進程即可
2. 關閉指定端口號的進程(推薦使用)
#2.關閉指定端口號的進程(推薦使用) ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9#3.關閉指定進程中關鍵詞的進程 ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:采用進程中唯一標識關閉的進程即可
3. 關閉指定進程關鍵詞的進程(推薦使用)
#3.關閉指定進程中關鍵詞的進程 ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:其實1/2/3都屬于一種,采用進程中唯一標識關閉的進程即可

4. 操作記錄
[cmiip@localhost ~]$ ps -ef |grep java cmiip 12293 1 7 20:54 pts/2 00:00:29 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8080 cmiip 12404 12096 8 20:55 pts/2 00:00:25 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8082 cmiip 12440 12096 12 20:55 pts/2 00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8083 cmiip 12456 12096 12 20:55 pts/2 00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8084 cmiip 12472 12096 12 20:56 pts/2 00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8085 cmiip 12581 12096 0 21:00 pts/2 00:00:00 grep --color=auto java [cmiip@localhost ~]$ ps -ef |grep 8080 cmiip 12293 1 7 20:54 pts/2 00:00:29 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8080 cmiip 12596 12096 0 21:01 pts/2 00:00:00 grep --color=auto 8080 [cmiip@localhost ~]$ ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs 12293 [cmiip@localhost ~]$ ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9 [cmiip@localhost ~]$ ps -ef |grep java cmiip 12404 12096 7 20:55 pts/2 00:00:25 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8082 cmiip 12440 12096 10 20:55 pts/2 00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8083 cmiip 12456 12096 11 20:55 pts/2 00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8084 cmiip 12472 12096 11 20:56 pts/2 00:00:36 java -jar demo-0.0.1-SNAPSHOT.jar --server.port=8085 cmiip 12610 12096 0 21:01 pts/2 00:00:00 grep --color=auto java [cmiip@localhost ~]$
5. 知識補充
說明:管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。 “ps -ef” 查看所有進程“grep -v grep” 是在列出的進程中去除含有關鍵字“grep”的進程。“cut -c 9-15” 是截取輸入行的第9個字符到第15個字符,而這正好是進程號PID。“xargs kill -9” 中的xargs命令是用來把前面命令的輸出結果(PID)作為“kill -9”命令的參數,并執行該命令。“kill -9”會強行殺掉指定進程,這樣就成功清除了同名進程。
二、jps方式
2.1. 使用場景說明

如果服務器上啟動著不同的應用或者軟件或者中間件可以使用此種方式;如果一種程序啟動多個推薦使用第一種方案。

2.2. 不同程序不同進程
jps | grep 'Elasticsearch' | awk -F ' ' '{print $1}' | xargs kill -9

因為jps輸出結果的形式是’進程號 進程名稱’,所以這里awk命令以空格切分,取第一個元素(即進程號),然后輸入到xargs即可.

三、管道另一種方式
3.1. 腳本編寫思路
1 netstat -nlp 查看占用端口號的服務 2 找到該端口號的進程 3 找到該進程id 4 kill它
3.2. 查看占用端口號的服務
[cmiip@localhost ~]$ netstat -nlptcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN - tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN - tcp6 0 0 :::8082 :::* LISTEN 12404/java tcp6 0 0 :::8083 :::* LISTEN 12440/java tcp6 0 0 :::8084 :::* LISTEN 12456/java tcp6 0 0 :::8085 :::* LISTEN 12472/java tcp6 0 0 :::21 :::* LISTEN - tcp6 0 0 :::22 :::* LISTEN - tcp6 0 0 ::1:25 :::* LISTEN - udp 0 0 0.0.0.0:68 0.0.0.0:* - raw6 0 0 :::58 :::* 7 -
3.3. 篩選看規律

可以用grep篩選一下,看看規律,找到有 :3306 的一行就好
用管道符給grep處理:

[cmiip@localhost ~]$ netstat -nlp | grep :8082 (Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.) tcp6 0 0 :::8082 :::* LISTEN 12404/java 既然取出一行了,那就容易了,再篩選一下,用awk分割取出其中一個
3.4. 讀取出端口號
[cmiip@localhost ~]$ netstat -nlp | grep :8082 | awk '{print $7}' (Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.) 12404/java [cmiip@localhost ~]$ 意思是取第七個字段,這里默認應該是用tab字符分割的,已經讀取出來了,但是還得拿到/前面的數字
3.5. 分割處理

取/前面的數字就可以了,這里還是可以用awk處理

[cmiip@localhost ~]$ netstat -nlp | grep :8082 | awk '{print $7}' | awk -F"/" '{ print $1 }' (Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.) 12404 [cmiip@localhost ~]$意思是用/符號分割,取第一部分
3.6. 然后把這個數字傳給kill就可以

需要用到"`"操作符,它可以執行一個語句,這個可以如此執行:

kill -9 `netstat -nlp | grep :8082 | awk '{print $7}' | awk -F"/" '{ print $1 }'` 操作記錄: [cmiip@localhost ~]$ kill -9 `netstat -nlp | grep :8082 | awk '{print $7}' | awk -F"/" '{ print $1 }'` (Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.) [cmiip@localhost ~]$ netstat -nlp | grep :8082 | awk '{print $7}' [cmiip@localhost ~]$

總結

以上是生活随笔為你收集整理的linux shell脚本关闭指定端口号的进程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。