shell指令碼子程序太多的查殺方法

2021-09-13 20:15:48 字數 553 閱讀 7843

之前寫的監控指令碼,有太多的子程序,如果直接kill主程序,子程序會歸到init程序直到執行完畢。所以查殺起來比較麻煩

在寫指令碼的時候可以記錄pid放到乙個檔案裡,再用指令碼查殺比較方便

例如,執行指令碼如下,記錄程序號到pid檔案

echo "$$" > pid;

while :

do for i in `seq 1 10`

doecho "pid: $$: $i";

echo "uid: $uid: $i";

echo "ppid: $ppid: $i";

sleep 3;

done &

echo "";

sleep 1;

done

查殺是用如下指令碼

pid=`cat pid`;                

ps --ppid $pid | awk ''| xargs kill -9

kill -9 $pid;

echo "done!!!";

Shell指令碼實現查殺子程序 殭屍程序

核心伺服器上跑了一堆的指令碼 程式,難免有時候會出現殭屍程序,死不死活不活的在那裡占用資源,程式設計客棧最初只是寫了個根據關鍵字查殺程序的linux shell指令碼,後來發現很多時候程序死在那裡的時候其實是內部呼叫子程序的時候出現了問題,這時候光殺父程序根本沒解決根本問題。比如說rsync的時候通...

Shell 指令碼殺死程序

方式一 bin sh name 1 echo name id ps ef grep name grep v 0 grep v grep awk echo id echo for id in id do kill 9 id echo killed id done echo 1 將之儲存為killpro...

shell指令碼學習一(shell的父子程序)

登陸某個虛擬控制器終端或在gui中執行終端 器時所啟動的預設的互動shell就是乙個父shell.etc passwd檔案中,第七個字段列出了使用者的預設shell.bash是root使用者登陸時的預設shell,此時bash就是乙個父shell 登陸系統時使用ps forest展示程序的巢狀結構,...