最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell腳本實現(xiàn)查殺子進程、僵尸進程

 更新時間:2015年01月27日 09:22:08   投稿:junjie  
這篇文章主要介紹了Shell腳本實現(xiàn)查殺子進程、僵尸進程,本文直接給出實現(xiàn)代碼,實現(xiàn)遞歸找到導致進程僵死的最底層子進程并殺除,需要的朋友可以參考下

核心服務(wù)器上跑了一堆的腳本、程序,難免有時候會出現(xiàn)僵尸進程,死不死活不活的在那里占用資源,最初只是寫了個根據(jù)關(guān)鍵字查殺進程的linux shell腳本,后來發(fā)現(xiàn)很多時候進程死在那里的時候其實是內(nèi)部調(diào)用子進程的時候出現(xiàn)了問題,這時候光殺父進程根本沒解決根本問題。比如說rsync的時候通過ssh來連接,rsync本身沒問題,但可能ssh死掉了。因此重新寫了腳本,遞歸查找子進程。

復制代碼 代碼如下:

#!/bin/sh
# 遞歸找到導致進程僵死的最底層子進程并殺除.
ParentProcessID=$1;
if [ "x${ParentProcessID}" = "x" ] ; then
    echo "Please Supply the top Parent Process ID to be killed!"
    echo "Usage:sh $0 PID [-v]"
    echo "PID The Parent Process ID as root"
    echo "-v is this argument supplied,no real kill operation will be performed,only process tree be show."
    exit 1
fi

let IsRealKillDo=1;
if [ "x$2" = "x-v" ] ; then
    let IsRealKillDo=0;
fi

echo "Begin Kill the Leaf Process of process ${ParentProcessID}" >&2

killpidList=""

function loopNextSubProcess(){
    local nParentProcessID=$1
    local tmpPidList=""
    tmpPidList=`ps -A --format='%p%PisParent' --width 2048 -w --sort pid|grep "${nParentProcessID}isParent"|grep -v grep|grep -v "$$" | awk '{ printf $1 }'`
    ps --format='%p%P%a' --width 2048 -w -p ${nParentProcessID}|grep -v grep|grep -v "$$" >&2
    if [ "x${tmpPidList}" = "x" ] ; then
        echo "****Got One Leaf = [${nParentProcessID}]****" >&2
        killpidList="${killpidList}\n${nParentProcessID}"
        return
    fi

    for theNextPid in ${tmpPidList} ; do
        loopNextSubProcess ${theNextPid}
    done
}

loopNextSubProcess ${ParentProcessID}

if [ ${IsRealKillDo} -eq 1 -a "x${killpidList}" != "x" ] ; then
    for curpid in `echo -e ${killpidList}` ; do
        if [ "x${curpid}" != "x" ] ; then
            echo "kill -9 ${curpid}"
            kill -9 ${curpid}
        fi
    done
else
    echo -e ${killpidList}
fi

相關(guān)文章

  • bash shell邏輯表達式的使用

    bash shell邏輯表達式的使用

    bash shell邏輯表達式一般有3種寫法,本文就來介紹一下bash shell邏輯表達式的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • shell 安全腳本的實現(xiàn)

    shell 安全腳本的實現(xiàn)

    本文主要介紹了shell 安全腳本的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • linux動態(tài)鏈接庫使用方法分享

    linux動態(tài)鏈接庫使用方法分享

    這篇文章主要介紹了linux動態(tài)鏈接庫使用方法,大家參考使用吧
    2014-01-01
  • Shell內(nèi)置命令之exit的語法與實例

    Shell內(nèi)置命令之exit的語法與實例

    系統(tǒng)中是有exit命令的,用于退出當前用戶的登錄狀態(tài),但是在?Shell?腳本中,exit?語句是用來退出當前腳本的,下面這篇文章主要給大家介紹了關(guān)于Shell內(nèi)置命令之exit的語法與實例,需要的朋友可以參考下
    2022-03-03
  • Linux實現(xiàn)徹底清理空文件夾的方法詳解

    Linux實現(xiàn)徹底清理空文件夾的方法詳解

    這篇文章主要介紹了Linux實現(xiàn)徹底刪除指定路徑下的所有空文件夾。這里的空文件夾的認定標準是:如果某個文件夾的子文件夾全是空文件夾,也認為該文件夾是空文件夾,需要的可以參考一下
    2022-10-10
  • shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法講解

    shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法講解

    在Linux開發(fā)中經(jīng)常會編寫shell腳本來執(zhí)行一些任務(wù),下面這篇文章主要給大家介紹了關(guān)于shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法,需要的朋友可以參考下
    2023-06-06
  • Shell腳本編寫的八條可靠建議(值得收藏)

    Shell腳本編寫的八條可靠建議(值得收藏)

    這八個建議,來源于鍵者幾年來編寫 shell 腳本的一些經(jīng)驗和教訓,不夸張地說,每條都是精挑細選的,雖然有幾點算是老生常談了。好了,對shell腳本編寫八條建議感興趣的朋友一起看看吧
    2016-11-11
  • Linux 中的 Install命令

    Linux 中的 Install命令

    install命令的作用是安裝或升級軟件或備份數(shù)據(jù),它的使用權(quán)限是所有用戶。 本文重點給大家介紹Linux 中的 Install命令,感興趣的朋友一起看看吧
    2017-09-09
  • Shell中的for和while循環(huán)詳細總結(jié)

    Shell中的for和while循環(huán)詳細總結(jié)

    這篇文章主要介紹了Shell中的for和while循環(huán)詳細總結(jié),本文講解了for循環(huán)的數(shù)字段形式、詳細列出、對文件進行循環(huán),while循環(huán)的三種使用場合等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Linux shell 獲得字符串所在行數(shù)及位置的方法

    Linux shell 獲得字符串所在行數(shù)及位置的方法

    這篇文章主要介紹了Linux shell 獲得字符串所在行數(shù)及位置的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08

最新評論

镇雄县| 长丰县| 霍林郭勒市| 扶沟县| 清河县| 津南区| 治县。| 灌阳县| 江源县| 庆云县| 沈丘县| 奉贤区| 嘉禾县| 福海县| 浙江省| 扎囊县| 广州市| 邓州市| 塔城市| 达州市| 连州市| 柳州市| 井研县| 宁海县| 桐柏县| 大余县| 万全县| 惠州市| 郴州市| 西青区| 鄢陵县| 宜君县| 灵石县| 宁德市| 宜川县| 宿迁市| 绿春县| 汽车| 辽源市| 孟连| 合阳县|