Linux關閉進程。


一、shell命令根據端口后關閉指定進程。

kill -9 $(netstat -nlp | grep :8080 | awk '{print $7}' | awk -F"/" '{ print $1 }')

netstat -lnp| grep 8080。是查看8080端口號的進程。

 

二、聲明變量。  

參考: shell變量

#定義變量,保存20501端口pid。
pid_20501=$(netstat -nlp | grep :20501 | awk '{print $7}' | awk -F"/" '{ print $1 }')
# sudo kill -9 $(netstat -nlp | grep :20501 | awk '{print $7}' | awk -F"/" '{ print $1 }')

#如果pid_20501不為空,kill起進程。----------------------------------
if [ ! $pid_20501 ]; then
    echo "20501端口沒有被占用"
else
    echo "關閉20501進程"
    kill -9 $pid_20501
fi

在腳本里如果不判端端口的pid是否存在直接運行,會導致腳本中止,所以加入if判斷。

三、流程控制。   

參考:1、  shell流程控制

  2、在shell中判斷一個變量是否為空

#如果pid_20501不為空,kill起進程。
if [ ! $pid_20501 ]; then
    echo "20501端口沒有被占用"
else
    echo "關閉20501進程"
    kill -9 $pid_20501
fi

把參考2的方法復制過來:

在shell中判斷一個變量是否為空

在shell中如何判斷一個變量是否為空 判斷一個腳本中的變量是否為空,我寫了一個這樣的shell腳本: C代碼 收藏代碼 #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo "IS NULL" else echo "NOT NULL" fi 然后把該腳本:test.sh通過chmod +x 改為可以執行的腳本,執行后輸出的結果為: NOT NULL,很是奇怪,最后,通過查詢一些資料發現,可以通過如下方式判斷一個shell變量是否為空: 1. 變量通過" "引號引起來 如下所示:,可以得到結果為 IS NULL. C代碼 收藏代碼 #!/bin/sh para1= if [ ! -n "$para1" ]; then echo "IS NULL" else echo "NOT NULL" fi 2. 直接通過變量判斷 如下所示:得到的結果為: IS NULL C代碼 收藏代碼 #!/bin/sh para1= if [ ! $para1 ]; then echo "IS NULL" else echo "NOT NULL" fi 3. 使用test判斷 得到的結果就是: dmin is not set! C代碼 收藏代碼 #!/bin/sh dmin= if test -z "$dmin" then echo "dmin is not set!" else echo "dmin is set !" fi 4. 使用""判斷 C代碼 收藏代碼 #!/bin/sh dmin= if [ "$dmin" = "" ] then echo "dmin is not set!" else echo "dmin is set !" fi 來源:http://www.kaiyuanba.cn/html/1/131/137/4106.htm

 

參考:Linux 進程狀態

  Linux 進程狀態 說明

 如何快速學好Shell腳本?

 


免責聲明!

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



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