工作流程
- 主進程fork個子進程cron (A) 爲守護進程,每分鐘讀取一下crontab中的配置,是否有要調度的進程,如果有,則放入任務隊列中;
- 執行該調度任務命令:A 先fork一個子進程 (B) 整體管理整個命令的執行,B 進程fork一個子進程 (C) 運行cron命令,如果該任務有輸入,則 B 進程fork一個子進程 (D),D 進程將任務輸入輸出給 C 進程。
- D 進程不是必須的,只是任務中輸入時才需要,比如:
*/1 * * * * /tmp/X/x%1234567890
%後面(1234567890)的爲標準輸入,則 D 進程會把1234567890輸入給 C 進程。
說明
- cron是一個在後臺運行調度的守護進程,而crontab是一個設置cron的工具。cron調度的是/etc/crontab文件。
參考
https://my.oschina.net/daquan/blog/483305