shell腳本子進程太多的查殺方法

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

在寫腳本的時候可以記錄PID放到一個文件裏,再用腳本查殺比較方便

例如,執行腳本如下,記錄進程號到pid文件

echo "$$" > pid;

while :
do
    for i in `seq 1 10`
    do
        echo "PID: $$: $i";
        echo "UID: $UID: $i";
        echo "PPID: $PPID: $i";
        sleep 3;
    done &
    echo "";
    sleep 1;
done

查殺是用如下腳本

pid=`cat pid`;                
ps --ppid $pid | awk '{if($1 != "PID") print $1}'| xargs kill -9
kill -9 $pid;
echo "done!!!"; 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章