用shell指令碼守護後台程序

2022-03-30 13:04:05 字數 1005 閱讀 8101

假如現在在 crond 中新增了乙個每分鐘執行的定時任務如下:

*/1 * * * * root cd /data/sbin; sh test.sh >/dev/null

2>&1

為了防止上乙個程序還沒完成,下乙個程序就啟動,我們可以建立乙個shell來守護該程序,方法如下:

#!/bin/sh

ps aux | grep test/init | grep -v grep > /dev/null

if [ $? != 0

]then

echo

"yii test not runing

"cd /data/web/; /usr/bin/php yii test/init 1>/dev/null

2>/tmp/test.txt &fi

注意:

如果使用文字編輯是在windows下通過記事本編寫的這個檔案,執行 在linux環境下。

unexpected end of file的錯,原因是 windows 和 linux的換行符不同導致的。

解決思路:

dos下的文字檔案是以\r\n作為斷行標誌的,表示成十六進製制就是0d 0a。而unix下的文字檔案是以\n作為斷行標誌的,表示成十六進製制就是0a。

【在windows裡,換行用的兩個符號,回車\r,換行符號\n,在linux下只需乙個符號\n就可以了.】

解決方案:

使用下面的命令將檔案格式設定為unix格式即可解決上述錯誤。

vim  test.sh

:set fileformat=unix

:wq

用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...

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....