工作中常常會遇到處理訊息佇列的消費者程序,這樣的程序是乙個守護程序,即乙個服務。服務通常寫個shell指令碼來管理,查詢服務的status ,啟動start 關閉stop 重啟reload。最近在學習shell,也模仿寫了乙個簡單的服務管理指令碼
首先貼出模擬的守護程序服務,php程式,命名demo.php
<?phpwhile(true)
?>
這是乙個死迴圈,不停的輸出。
管理的shell指令碼如下
#!/bin/bashdemo_script='/home/tianquanjun/study/service/demo.php' #服務指令碼
demo_log='/home/tianquanjun/study/service/demo.log' #服務執行日誌
#判斷程式是否已經在執行
status_script()'`
if [ $ ]
then
echo $'在執行中'
return 1
else
echo $0'未啟動'
return 2
fi}#啟動指令碼,先判斷指令碼是否已經在執行
start_script()' 已經在執行中了'
else
echo '啟動'$'中...'
nohup /usr/bin/php $>$ &
echo '啟動完畢'
fi}#停止指令碼
stop_script()' 不是執行狀態'
else
dokill -term $ >/dev/null 2>&1
done
echo '停止完畢'
fi}#重啟指令碼
reload_script()
#入口函式
handle() 'status|start|stop|restart';
;;esac
}if [ $# -eq 1 ]
then
handle $1
else
echo 'usage of this server is '$ 'status|start|stop|restart';
fi
利用 ./demo.sh status|start|stop|reload 來管理
由於守護程序容易死掉,所以我們也經常在ctontab中加入 定時重啟任務
Linux守護程序Shell指令碼
服務端程式一般需要長期後台穩定執行,除了保證程式本身的健壯外,還需要用到一些守護程式。現分享乙個簡單的shell指令碼的方式 bin sh 程序名字可修改 pro name rails cmd nohup bundle exec rails server webrick p3000 b 0.0.0....
Linux守護程序Shell指令碼
服務端程式一般需要長期後台穩定執行,除了保證程式本身的健壯外,還需要用到一些守護程式。現分享乙個簡單的shell指令碼的方式 bin sh 程序名字可修改 pro name rails cmd nohup bundle exec rails server webrick p3000 b 0.0.0....
用shell寫守護程序指令碼
乙個udhcpd與udhcpc的守護,目前只會用shell模仿編寫,還有什麼方法可以做守護呢?bin sh 程序名字可修改 pro name udhcpc wlan ra0 while true do 用ps獲取 pro name程序數量 num ps aux grep grep v grep wc...