linux shell脚本关闭指定端口号的进程
生活随笔
收集整理的這篇文章主要介紹了
linux shell脚本关闭指定端口号的进程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關(guān)閉指定進(jìn)程中關(guān)鍵詞的進(jìn)程,最好找一個唯一標(biāo)識 例如:項目名稱 等等
文章目錄
- 一、管道方式
- 1. 關(guān)閉指定程序進(jìn)程號
- 2. 關(guān)閉指定端口號的進(jìn)程(推薦使用)
- 3. 關(guān)閉指定進(jìn)程關(guān)鍵詞的進(jìn)程(推薦使用)
- 4. 操作記錄
- 5. 知識補(bǔ)充
- 二、jps方式
- 2.1. 使用場景說明
- 2.2. 不同程序不同進(jìn)程
- 三、管道另一種方式
- 3.1. 腳本編寫思路
- 3.2. 查看占用端口號的服務(wù)
- 3.3. 篩選看規(guī)律
- 3.4. 讀取出端口號
- 3.5. 分割處理
- 3.6. 然后把這個數(shù)字傳給kill就可以
一、管道方式
1. 關(guān)閉指定程序進(jìn)程號
#1.關(guān)閉指定程序的進(jìn)程 ps -ef | grep java | grep -v grep | cut -c 9-15 | xargs kill -9注:如果是以程序來關(guān)閉的場景,這一種僅限于該java程序只啟動了一個#2.關(guān)閉指定端口號的進(jìn)程(推薦使用) ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9#3.關(guān)閉指定進(jìn)程中關(guān)鍵詞的進(jìn)程 ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:采用進(jìn)程中唯一標(biāo)識關(guān)閉的進(jìn)程即可2. 關(guān)閉指定端口號的進(jìn)程(推薦使用)
#2.關(guān)閉指定端口號的進(jìn)程(推薦使用) ps -ef | grep 8080 | grep -v grep | cut -c 9-15 | xargs kill -9#3.關(guān)閉指定進(jìn)程中關(guān)鍵詞的進(jìn)程 ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:采用進(jìn)程中唯一標(biāo)識關(guān)閉的進(jìn)程即可3. 關(guān)閉指定進(jìn)程關(guān)鍵詞的進(jìn)程(推薦使用)
#3.關(guān)閉指定進(jìn)程中關(guān)鍵詞的進(jìn)程 ps -ef | grep demo-0.0.1-SNAPSHOT | grep -v grep | cut -c 9-15 | xargs kill -9注:其實1/2/3都屬于一種,采用進(jìn)程中唯一標(biāo)識關(guān)閉的進(jìn)程即可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. 知識補(bǔ)充
說明:管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。 “ps -ef” 查看所有進(jìn)程“grep -v grep” 是在列出的進(jìn)程中去除含有關(guān)鍵字“grep”的進(jìn)程?!癱ut -c 9-15” 是截取輸入行的第9個字符到第15個字符,而這正好是進(jìn)程號PID。“xargs kill -9” 中的xargs命令是用來把前面命令的輸出結(jié)果(PID)作為“kill -9”命令的參數(shù),并執(zhí)行該命令?!発ill -9”會強(qiáng)行殺掉指定進(jìn)程,這樣就成功清除了同名進(jìn)程。二、jps方式
2.1. 使用場景說明
如果服務(wù)器上啟動著不同的應(yīng)用或者軟件或者中間件可以使用此種方式;如果一種程序啟動多個推薦使用第一種方案。
2.2. 不同程序不同進(jìn)程
jps | grep 'Elasticsearch' | awk -F ' ' '{print $1}' | xargs kill -9因為jps輸出結(jié)果的形式是’進(jìn)程號 進(jìn)程名稱’,所以這里awk命令以空格切分,取第一個元素(即進(jìn)程號),然后輸入到xargs即可.
三、管道另一種方式
3.1. 腳本編寫思路
1 netstat -nlp 查看占用端口號的服務(wù) 2 找到該端口號的進(jìn)程 3 找到該進(jìn)程id 4 kill它3.2. 查看占用端口號的服務(wù)
[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. 篩選看規(guī)律
可以用grep篩選一下,看看規(guī)律,找到有 :3306 的一行就好
用管道符給grep處理:
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 ~]$ 意思是取第七個字段,這里默認(rèn)應(yīng)該是用tab字符分割的,已經(jīng)讀取出來了,但是還得拿到/前面的數(shù)字3.5. 分割處理
取/前面的數(shù)字就可以了,這里還是可以用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. 然后把這個數(shù)字傳給kill就可以
需要用到"`"操作符,它可以執(zhí)行一個語句,這個可以如此執(zhí)行:
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 ~]$總結(jié)
以上是生活随笔為你收集整理的linux shell脚本关闭指定端口号的进程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM调优_堆内存溢出和非堆内存溢出
- 下一篇: flowable 开源项目