亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

核心服務器上跑了一堆的腳本、程序,難免有時候會出現(xiàn)僵尸進程,死不死活不活的在那里占用資源,最初只是寫了個根據(jù)關鍵字查殺進程的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

相關文章

  • Shell腳本批量清除Nginx緩存

    Shell腳本批量清除Nginx緩存

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

    Linux中修改文件權限chmod命令詳解

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

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

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

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

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

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

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

    積累linux常用命令大全

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

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

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

    復制 Windows cmd 窗口命令行的信息方法

    下面小編就為大家?guī)硪黄獜椭?Windows cmd 窗口命令行的信息方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Linux 使用grep篩選多個條件及grep常用過濾命令

    Linux 使用grep篩選多個條件及grep常用過濾命令

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

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

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

最新評論