欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Shell腳本運行中的停止方法實現(xiàn)

 更新時間:2021年11月24日 10:05:34   作者:super丶Coder  
Linux系統(tǒng)Shell中提交了一個腳本,但是需要停止這個進程,如何處理?本文就來詳細的介紹一下,感興趣的可以了解一下

Linux系統(tǒng)Shell中提交了一個腳本,但是需要停止這個進程,如何處理?

方式1

killall file-flume-kafka

說明:killall是一個命令,不是kill all,file-flume-kafka是腳本名,此方法簡單粗暴。

方式二

ssh $i "ps -ef | grep file-flume-kafka | grep -v grep | awk '{print \$2}' | xargs kill"

ps參數(shù):

-e:顯示所有進程
-f:全格式顯示
ps -ef 第二個參數(shù)就是進程ID

grep file-flume-kafka | grep -v grep,file-flume-kafka為腳本名,并去除包含grep的行,避免影響最終結(jié)果正確性
grep aaa | grep -v bbb:可以過濾掉查詢aaa結(jié)果中包含了bbb的行。
grep -v 可以理解為 grep not
舉例:cat test.log | grep "login"|grep -v "deviceType"表示找出test.log中包含login關(guān)鍵字,且沒有deviceType這個字段的行

awk ‘{print $2}':逐行的讀入,以空格為默認分隔符將每行切片,取第二行。
awk參數(shù) -F : 指定輸入文件折分隔符。
比如awk -F : ‘/^root/{print $7}' passwd 表示搜索passwd文件以root關(guān)鍵字開頭的所有行,并輸出該行的第7列。

xargs kill:將前面的運行結(jié)果作為kill命令的參數(shù)運行。
xargs表示取出前面命令運行的結(jié)果,作為后面命令的輸入?yún)?shù)。
xargs可選項:-n1,將每一個參數(shù)傳給后面命令依次執(zhí)行。

特別注意:
ssh $i 是登錄到你執(zhí)行腳本的那臺虛擬機上,i代表虛擬機名字,非本機登錄需要設(shè)置免密。當在本機上進行此操作時,無需執(zhí)行這個命令。另外后面$2前的轉(zhuǎn)義\也必須省略,無需轉(zhuǎn)義。命令如下:
ps -ef | grep file-flume-kafka | grep -v grep | awk '{print $2}' | xargs kill

具體例子如下:

假設(shè)這個是我正在運行的腳本,我想kill它,但是我不知道他的進程號,只知道腳本的名稱。

在這里插入圖片描述

我的腳本名稱為dws-dwt.sh,根據(jù)過濾條件我查找出腳本有兩個進程號,為什么會這樣呢?

因為你查找進程時用到了grep命令,而這個命令執(zhí)行的時候帶有你查找的進程參數(shù),同時這也是一個進程。

例如 這條命令 ps -ef | grep dws-dwt.sh 其實是分兩步執(zhí)行的 先執(zhí)行ps -ef 再執(zhí)行 grep dws-dwt.sh 這個命令本身執(zhí)行的時候也是一個進程,并把也帶有dws-dwt.sh。

所以你要查找dws-dwt.sh進程,需要把 grep dws-dwt.sh這個進程過濾掉,才是最后的結(jié)果,怎么過濾呢,肯定不能用dws-dwt.sh做關(guān)鍵字,只能用grep做關(guān)鍵字

執(zhí)行結(jié)果有兩個進程號:

ps -ef | grep dws-dwt.sh

在這里插入圖片描述

最終結(jié)果,得到進程號:

#執(zhí)行命令停止進程
ps -ef | grep dws-dwt.sh | grep -v grep | awk '{print $2}' | xargs kill 

到此這篇關(guān)于Shell腳本運行中的停止方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Shell腳本運行中的停止方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論