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

Linux下使用Shell腳本實(shí)現(xiàn)進(jìn)程監(jiān)控的流程

 更新時間:2023年02月27日 08:40:35   作者:赤露水  
這篇文章主要介紹了Linux下使用Shell腳本實(shí)現(xiàn)進(jìn)程監(jiān)控,在 Linux 平臺下,shell 腳本監(jiān)控是一個非常簡單、方便的工具,它可以有效的對服務(wù)器、進(jìn)程進(jìn)行監(jiān)控,對系統(tǒng)開發(fā)以及進(jìn)程維護(hù)人員非常有幫助,需要的朋友可以參考下

本文介紹一種在Linux系統(tǒng)下為實(shí)現(xiàn)某些關(guān)鍵進(jìn)程狀態(tài)的實(shí)時監(jiān)控而使用shell腳本的編寫方法。在這里主要通過監(jiān)控某些進(jìn)程是否退出作為判斷依據(jù),如果某個進(jìn)程退出了,則進(jìn)行對應(yīng)的恢復(fù)處理,如重新拉起相關(guān)的進(jìn)程等。

下面介紹該腳本的實(shí)現(xiàn)流程。

首先生成一個名為”process_check.sh”的腳本,腳本內(nèi)容如下:

#!/bin/bash
 
#該函數(shù)檢查關(guān)鍵進(jìn)程的狀態(tài),最終返回進(jìn)程的個數(shù)。
checkprocess()
{
#       echo "checkprocess...$1"
        if [ "$1" = "" ];
        then
                return 1
        fi
        process_num=`ps -ef|grep "$1" |grep -v "grep" |wc -l`
#       echo "checkprocess num=$process_num"
        return $process_num
}
#進(jìn)程如有退出,則記錄相關(guān)的信息,并做相關(guān)的處理
recordinfo()
{
#       echo "check $1"
        if [ "$1" = "" ];
        then
                return
        fi
#打印進(jìn)程退出的時間
        date "+++++++++++++++++++ +%Y-%m-%d %H:%M:%S '$1' exit! +++++++++++++++++++"
#重新拉起這個進(jìn)程
        "$1" &
        echo "restart $1"
}
 
#檢查進(jìn)程的狀態(tài)
check()
{
        echo "####check $1"
        if [ "$1" = "" ];
        then
                return
        fi
        checkprocess "$1"
        check_result=$?
#如果該進(jìn)程的個數(shù)為0,則說明該進(jìn)程已經(jīng)退出
        if [ $check_result -eq 0 ];
        then
                recordinfo "$1"
#               exit
        fi
}
#循環(huán)檢測
while [ 1 ] ; do
        #關(guān)鍵進(jìn)程列表,多個進(jìn)程以逗號分隔,這里以兩個進(jìn)程為例子。
        process_name="./test1,./test2"
        OLD_IFS="$IFS"
        IFS=","
        arr=($process_name)
        IFS="$OLD_IFS"
 
        for s in ${arr[@]}
        do
          check "$s"
        done
        sleep 3
#       echo "check loop..."
done

測試驗(yàn)證

這里寫一個簡單的測試程序,代碼如下:

void main()
{
        while(1) {
                sleep(3);
        }
}

編譯后生成兩個名為“test1”,“test2”的可執(zhí)行文件。

為了方便測試,可以將”process_check.sh”,”test1”,”test2”放置于同一個目錄下。

1.運(yùn)行”process_check.sh”,如下所示:

從上圖可知,”test1”,”test2”剛開始并未被拉起,運(yùn)行”process_check.sh”之后,檢測出”test1”,”test2”不存在,則觸發(fā)拉起的機(jī)制,最終”test1”,”test2”被啟動了。

2.運(yùn)行過程中kill掉某一個進(jìn)程,驗(yàn)證”process_check.sh”是否有將該進(jìn)程拉起。

由下圖可知,被kill的進(jìn)程最終又被拉起了。

至此,該腳本的功能已被驗(yàn)證完畢。

結(jié)語:在 Linux 平臺下,shell 腳本監(jiān)控是一個非常簡單、方便的工具,它可以有效的對服務(wù)器、進(jìn)程進(jìn)行監(jiān)控,對系統(tǒng)開發(fā)以及進(jìn)程維護(hù)人員非常有幫助。

到此這篇關(guān)于Linux下使用Shell腳本實(shí)現(xiàn)進(jìn)程監(jiān)控的文章就介紹到這了,更多相關(guān)Shell腳本進(jìn)程監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Linux中的awk命令

    詳解Linux中的awk命令

    awk是一個強(qiáng)大的文本分析工具,相對于grep的查找,sed的編輯,awk在其對數(shù)據(jù)分析并生成報(bào)告時,顯得尤為強(qiáng)大。這篇文章主要介紹了Linux中的awk命令的相關(guān)知識,需要的朋友可以參考下
    2019-11-11
  • 一天一個shell命令 linux好管家-磁盤-du命令詳解

    一天一個shell命令 linux好管家-磁盤-du命令詳解

    這篇文章主要介紹了一天一個shell命令 linux好管家-磁盤-du命令詳解,需要的朋友可以參考下
    2016-06-06
  • 監(jiān)控php-fpm并自動重啟服務(wù)的shell腳本

    監(jiān)控php-fpm并自動重啟服務(wù)的shell腳本

    這篇文章主要介紹了監(jiān)控php-fpm并自動重啟服務(wù)的shell腳本,腳本的主要功能:不斷檢查網(wǎng)站的狀態(tài),如果異常就重啟php-fpm服務(wù),需要的朋友可以參考下
    2014-05-05
  • Shell腳本傳遞參數(shù)的3種方法比較

    Shell腳本傳遞參數(shù)的3種方法比較

    這篇文章主要介紹了Shell腳本傳遞參數(shù)的3種方法比較,本文直接給出代碼示例,在代碼中包含詳細(xì)注解,需要的朋友可以參考下
    2015-05-05
  • Shell腳本實(shí)現(xiàn)溫和方式重啟Centos系統(tǒng)

    Shell腳本實(shí)現(xiàn)溫和方式重啟Centos系統(tǒng)

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)溫和方式重啟Centos系統(tǒng),本文腳本主要目的是用于重啟后臺比較重要的進(jìn)程,需要的朋友可以參考下
    2014-12-12
  • 淺談shell循環(huán)中變量的作用域問題

    淺談shell循環(huán)中變量的作用域問題

    今天小編就為大家分享一篇淺談shell循環(huán)中變量的作用域問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • shell腳本--sed的用法詳解

    shell腳本--sed的用法詳解

    這篇文章主要介紹了shell腳本--sed的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • shell腳本編寫ping包及arp的監(jiān)控并發(fā)送短信功能

    shell腳本編寫ping包及arp的監(jiān)控并發(fā)送短信功能

    這篇文章主要介紹了shell腳本編寫ping包及arp的監(jiān)控并發(fā)送短信功能,需要的朋友可以參考下
    2017-03-03
  • mac 安裝omyzsh后不執(zhí)行~/.bash_profile、~/.bashrc的完美解決辦法

    mac 安裝omyzsh后不執(zhí)行~/.bash_profile、~/.bashrc的完美解決辦法

    mac 安裝 omyzsh 后, terminal瞬間格調(diào)飆升,但是,terminal init的時候并不會執(zhí)行~/.bash_profile、~/.bashrc等腳本了,什么原因呢?下面小編給大家分享解決辦法,一起看看吧
    2017-01-01
  • 三分鐘學(xué)會Linux基本指令

    三分鐘學(xué)會Linux基本指令

    本文小馬將把Linux一般比較常見的指令給大家一一列舉出來,為了大家忘記某些指令后,可以方便查詢記憶,再次小馬建議,Linux指令并不需要去特別花時間專門記憶,只需要多進(jìn)行操作實(shí)現(xiàn)就行,這篇文章主要介紹了Linux基本指令,需要的朋友可以參考下
    2022-12-12

最新評論