Linux守護進程Shell指令碼__Linux

來源:互聯網
上載者:User

http://blog.csdn.net/special23/article/details/52690057


服務端程式一般需要長期後台穩定運行,除了保證程式本身的健壯外,還需要用到一些精靈。


現分享一個簡單的Shell指令碼的方式:

#! /bin/sh#進程名字可修改PRO_NAME=railsCMD="nohup bundle exec rails server webrick -p3000 -b 0.0.0.0 -e production >/dev/null 2>&1 -d &"while true ; do     #用ps擷取$PRO_NAME進程數量     NUM=`ps aux | grep -w ${PRO_NAME} | grep -v grep |wc -l`     #echo $NUM     #少於1,重啟進程     if [ "${NUM}" -lt "1" ];then         echo "${PRO_NAME} was killed"         $CMD    #大於1,殺掉所有進程,重啟    elif [ "${NUM}" -gt "1" ];then        echo "more than 1 ${PRO_NAME},killall ${PRO_NAME}"        killall -9 $PRO_NAME        $CMD     fi     #kill殭屍進程     NUM_STAT=`ps aux | grep -w ${PRO_NAME} | grep T | grep -v grep | wc -l`     if [ "${NUM_STAT}" -gt "0" ];then         killall -9 ${PRO_NAME}         $CMD    fi     sleep 5sdoneexit 0

指令碼儲存為 xxx.sh

設定指令碼執行許可權 chmod 777 xxx.sh

控制台執行則:./xxx.sh   這樣就會保證始終存在一個xxxx程式的運行。

需要後台持續運行則:nohup ./xxx.sh &

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.