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

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

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

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

復(fù)制代碼 代碼如下:

#!/bin/sh
# 遞歸找到導(dǎo)致進(jìn)程僵死的最底層子進(jìn)程并殺除.
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邏輯表達(dá)式的使用

    bash shell邏輯表達(dá)式的使用

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

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

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

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

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

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

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

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

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

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

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

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

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

    Linux 中的 Install命令

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

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

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

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

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

最新評論

昌图县| 南投县| 名山县| 灵宝市| 武汉市| 莎车县| 慈利县| 莱阳市| 崇州市| 镶黄旗| 蕉岭县| 合作市| 丹东市| 内黄县| 甘谷县| 大丰市| 新巴尔虎左旗| 隆尧县| 大兴区| 永靖县| 尼玛县| 交城县| 开平市| 长武县| 夹江县| 怀柔区| 望城县| 涿鹿县| 新余市| 衡阳县| 阿拉尔市| 鄂州市| 花莲县| 彰化市| 米林县| 泊头市| 景谷| 德令哈市| 九龙坡区| 庆城县| 开平市|