嵌入式Linux下使用BusyBox的crond服務的方法

來源:互聯網
上載者:User

crond是一個服務,一個守護進程。crond 是linux用來定期執行程式的命令,crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。

crontab 是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。

按照網上尋找的資料執行時經常會碰到這種錯誤:

crontab: chdir(/var/spool/cron/crontabs): No such file or directory

所以首先建立這樣一個目錄吧!

#mkdir -p /var/spool/cron/crontabs

然後編輯要執行的任務

#crontabs -e

0 */1 * * * /sbin/ntpdate 192.168.1.67 >/dev/null 2>&1 每隔一個小時更新下時間,不列印任何資訊

最後,執行下

#crond

此時你會發現/var/spool/cron/crontabs下有一個跟使用者名稱相同的檔案,儲存著要執行的任務。

ps下會發現cron進程已經啟動!

 

以上內容參見文章: 

 

【問題】

實踐中發現問題如下:

在主機端開發板NFS目錄下var裡建立的檔案夾在開發板的/var下面查看,並未找到檔案夾,同樣在開發板端/var目錄下建立的檔案夾或者檔案,在主機端也沒有出現,最後感謝王師傅,得到瞭解決方案與原因:

【原因】

var下面很多檔案一直在重新整理,電腦硬碟無所謂,嵌入式儲存用的flash,擦寫多了嚴重影響壽命,所以var目錄下的內容實際為記憶體虛擬,並不存在與flash之中。

【解決方案】

在開發板/etc/crontabs/下建立crontab的設定檔root:

* * * * * /myupdate/update

每分鐘執行update一次

然後在/etc/init.d/rcS修改,讓開發板每次啟動之後自動執行:

mkdir -p /var/spool/cron/crontabs#guoshufanADD
cp -p /etc/crontabs/root /var/spool/cron/crontabs#guoshufanADD

chmod 777 /var/spool/cron/crontabs/root#guoshufanADD

crond#guoshufanADD
echo "cp cron config file to /var/spool/cron/crontabs"#guohufanADD

即建立crontab設定檔目錄,然後將設定檔按拷貝至建立目錄下,完美解決問題,不過要記得執行chmod命令,以後只需要修改root中的內容就可以改變crontab配置,不過臨時修改配置還是需要去/var/spool/cron/crontabs內的rooot檔案,永久修改是修改/etc/crontabs/root,重啟生效。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.