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

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í)候會(huì)出現(xiàn)僵尸進(jìn)程,死不死活不活的在那里占用資源,最初只是寫(xiě)了個(gè)根據(jù)關(guān)鍵字查殺進(jìn)程的linux shell腳本,后來(lái)發(fā)現(xiàn)很多時(shí)候進(jìn)程死在那里的時(shí)候其實(shí)是內(nèi)部調(diào)用子進(jìn)程的時(shí)候出現(xiàn)了問(wèn)題,這時(shí)候光殺父進(jìn)程根本沒(méi)解決根本問(wèn)題。比如說(shuō)rsync的時(shí)候通過(guò)ssh來(lái)連接,rsync本身沒(méi)問(wèn)題,但可能ssh死掉了。因此重新寫(xiě)了腳本,遞歸查找子進(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)文章

  • Shell腳本批量清除Nginx緩存

    Shell腳本批量清除Nginx緩存

    這篇文章主要介紹了Shell腳本批量清除Nginx緩存,本文直接給出實(shí)現(xiàn)代碼和執(zhí)行效果圖,需要的朋友可以參考下
    2014-12-12
  • Linux中修改文件權(quán)限chmod命令詳解

    Linux中修改文件權(quán)限chmod命令詳解

    在Linux系統(tǒng)中,chmod命令用于更改文件或目錄的權(quán)限,它可以授予或撤銷對(duì)文件的讀取、寫(xiě)入和執(zhí)行權(quán)限,本文給大家詳細(xì)的介紹了Linux修改文件權(quán)限chmod命令用法,需要的朋友可以參考下
    2023-08-08
  • 使用netcat(瑞士軍刀)進(jìn)行文件傳輸

    使用netcat(瑞士軍刀)進(jìn)行文件傳輸

    netcat是開(kāi)源世界的經(jīng)典應(yīng)用之一,被稱為網(wǎng)絡(luò)瑞士軍刀。幾乎所有的發(fā)行版都會(huì)帶這個(gè)小程序,用它可以在任意兩臺(tái)有網(wǎng)絡(luò)鏈接的機(jī)器上傳輸文件, 下面我們就來(lái)簡(jiǎn)單看下他的使用方法吧。
    2016-01-01
  • shell SNAT與DNAT的使用與區(qū)別

    shell SNAT與DNAT的使用與區(qū)別

    本文主要介紹了shell SNAT與DNAT的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Shell腳本連接oracle數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼

    Shell腳本連接oracle數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Shell腳本連接oracle數(shù)據(jù)庫(kù)的實(shí)現(xiàn)代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 積累linux常用命令大全

    積累linux常用命令大全

    Linux命令是對(duì)Linux系統(tǒng)進(jìn)行管理的命令。對(duì)于Linux系統(tǒng)來(lái)說(shuō),無(wú)論是中央處理器、內(nèi)存、驅(qū)動(dòng)、鍵盤(pán)、鼠標(biāo),還是用戶等都是文件,Linux命令是它正常運(yùn)行的核心,這篇文章主要總結(jié)了linux常用命令,需要的朋友可以參考下
    2015-08-08
  • 在shell或者perl中改變字體或背景的顏色

    在shell或者perl中改變字體或背景的顏色

    有時(shí)候在運(yùn)行別人寫(xiě)的腳本的時(shí)候,在黑乎乎的終端下顯示了不同的顏色,好生的羨慕啊,今天就來(lái)分享一下,分別在shell和perl中怎么改變我們輸出的字體的顏色
    2014-04-04
  • 復(fù)制 Windows cmd 窗口命令行的信息方法

    復(fù)制 Windows cmd 窗口命令行的信息方法

    下面小編就為大家?guī)?lái)一篇復(fù)制 Windows cmd 窗口命令行的信息方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Linux 使用grep篩選多個(gè)條件及grep常用過(guò)濾命令

    Linux 使用grep篩選多個(gè)條件及grep常用過(guò)濾命令

    這篇文章主要介紹了Linux 使用grep篩選多個(gè)條件及grep常用過(guò)濾命令,需要的朋友可以參考下
    2018-07-07
  • linux shell 腳本實(shí)現(xiàn)tcp/upd協(xié)議通訊(重定向應(yīng)用)

    linux shell 腳本實(shí)現(xiàn)tcp/upd協(xié)議通訊(重定向應(yīng)用)

    這篇文章主要介紹了linux shell 腳本實(shí)現(xiàn)tcp/upd協(xié)議通訊(重定向應(yīng)用),需要的朋友可以參考下
    2015-10-10

最新評(píng)論