<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    linux下監視進程 崩潰掛掉后自動重啟的shell腳本

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

     如何保證服務一直運行?如何保證即使服務掛掉了也能自動重啟?在寫服務程序時經常會碰到這樣的問題。在Linux系統中,強大的shell就可以很靈活的處理這樣的事務。

        下面的shell通過一個while-do循環,用ps -ef|grep 檢查loader進程是否正在運行,如果沒有運行,則啟動,這樣就保證了崩潰掛掉的進程重新被及時啟動。

        必須注意兩點:

        1、ps |grep 一個進程時必須加上其路勁,否則容易grep到錯誤的結果;

        2、必須用 -v 從結果中去除grep命令自身,否則結果非空。

        復制代碼代碼如下:

        #!/bin/sh

        while :

        do

        echo "Current DIR is " $PWD

        stillRunning=$(ps -ef |grep "$PWD/loader" |grep -v "grep")

        if [ "$stillRunning" ] ; then

        echo "TWS service was already started by another way"

        echo "Kill it and then startup by this shell, other wise this shell will loop out this message annoyingly"

        kill -9 $pidof $PWD/loader

        else

        echo "TWS service was not started"

        echo "Starting service ..."

        $PWD/loader

        echo "TWS service was exited!"

        fi

        sleep 10

        done

        如果啟動此shell時發現進程已經存在,說明以別的方式啟動了進程而不是此shell,那么它會持續提醒找到進程,解決辦法是,要么只用此shell啟動服務,要么一經發現以其他方式啟動的服務即kill掉,上面的語句就是這么干的:

        kill -9 $pidof $PWD/loader

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全