เดธเดจเตเดคเตเดทเดเดฐเดฎเดพเดฏ เดฎเดฃเดฟเดเตเดเตเดฑเตเดเตพ เดเดพเดฃเดฟเดฒเตเดฒเตเดจเตเดจเต เดเตเดฒเดพเดธเดฟเดเต เดเดดเตเดคเดฟ. เด เดตเดจเตเดฏเดฎเดพเดฏ เดเดพเดฒเดคเตเดคเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตผเดฎเดพเดฐเต เดฏเตเดฃเดฟเดเตเดธเต เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เดเดจเตเดจเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตผเดฎเดพเตผเดเตเดเต เดเดฑเดชเตเดชเดพเดฏเตเด เด เดฑเดฟเดฏเดพเด: เดเตเดฐเตเตบ เด เดตเตผเดเตเดเต เดชเดเดฐเด เดธเดฎเดฏเด เดเตเดฐเดพเดเตเดเต เดเตเดฏเตเดฏเตเด.
เดเดฎเดพเตปเดกเต เดฒเตเตป เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเตพ เดเดจเดฟเดเตเดเต เดเดฐเต เดฌเดฒเดนเตเดจเดคเดฏเตเด เดเตเดฒเดฟเดฏเตเดฎเดพเดฃเต. sed, awk, wc, cut เดเดจเตเดจเดฟเดตเดฏเตเด เดฎเดฑเตเดฑเต เดชเดดเดฏ เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเดณเตเด เดเดฒเตเดฒเดพ เดฆเดฟเดตเดธเดตเตเด เดเดเตเดเดณเตเดเต เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต. เด เดตเดฏเดฟเตฝ เดชเดฒเดคเตเด เดเตเดฐเตเดฃเดฟเดจเต เดตเตเดฃเตเดเดฟ เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตเดคเดฟเดเตเดเตเดณเตเดณเดคเดพเดฃเต, เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ 70-เดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เดทเตเดกเตเดฏเตเดณเตผ.
เดตเดฟเดถเดฆเดพเดเดถเดเตเดเดณเดฟเดฒเตเดเตเดเต เดเดเดเตเดเดพเดคเต เดตเดณเดฐเตเดเตเดเดพเดฒเดฎเดพเดฏเดฟ เดเดพเตป เดเตเดฐเตเตบ เดเดชเดฐเดฟเดชเตเดฒเดตเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดจเตเดจเดพเตฝ เดเดฐเต เดฆเดฟเดตเดธเด, เดเดฐเต เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฐเต เดชเดฟเดถเดเต เดจเตเดฐเดฟเดเตเดเดชเตเดชเตเตพ, เด เดคเต เดจเดจเตเดจเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต. เด เดฒเตเดเดจเด เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเดคเต เดเดเตเดเดจเตเดฏเดพเดฃเต, เดเดคเต เดเดดเตเดคเตเดฎเตเดชเตเตพ, เดเดจเดชเตเดฐเดฟเดฏ เดฒเดฟเดจเดเตเดธเต เดตเดฟเดคเดฐเดฃเดเตเดเดณเดฟเดฒเต เดชเตเดฐเดงเดพเดจ เดเตเดฐเตเตบ เดเดชเตเดทเดจเตเดเดณเดพเดฏ เดชเตเดธเดฟเดเตเดธเต เดเตเดฐเตเดฃเตเดเดพเดฌเตเด เด เดตเดฏเดฟเตฝ เดเดฟเดฒเดคเดฟเดจเตเดฑเต เดเดเดจเดฏเตเด เดเดจเดฟเดเตเดเต เดชเดฐเดฟเดเดฟเดคเดฎเดพเดฏเดฟ.
เดจเดฟเดเตเดเตพ Linux เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เดเตเดฐเตเตบ เดเดพเดธเตโเดเตเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเตเดฃเตเดเต? Unix-เดฒเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเตผเดเตเดเดฟเดเตเดเตเดเดฑเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเต? เด เดชเตเดชเตเตพ เดเดเตเดเตพ เดเดเตเดเดณเตเดเต เดตเดดเดฟเดฏเดฟเดฒเดพเดฃเต!
เดเดณเตเดณเดเดเตเดเด
เดเตเดตเดฟเดตเตผเดเดเตเดเดณเตเดเต เดเดคเตเดญเดตเด เดชเตเดธเดฟเดเตเดธเต เดเตเดฐเตเดฃเตเดเดพเดฌเต เดฌเตเดธเตเดฑเตเดฑเต เดธเตเดฒเตเดฒเตผ - Vixie cron 3.0pl1 เดกเตเดฌเดฟเดฏเตป, เดเดฌเตเดฃเตเดเต เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเตเดฐเตเตบ Red Hat, Fedora, CentOS เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเตเดฐเตเดฃเดฟ SLES, openSUSE เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเตเดฐเตเดฃเดฟ เดตเดฟเดเตเดธเดฟ เดเตเดฐเตเตบ เดเดชเดเดฐเดฃเด Afterword
เดเตเดตเดฟเดตเตผเดเดเตเดเดณเตเดเต เดเดคเตเดญเดตเด
เดเดฒเตเดฒเดพ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเดฟเดฒเตเด เดฏเตเดธเตผ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเดฟเดธเตเดฑเตเดฑเด เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเดณเตเดเต เดเดจเตเดเดพเดฒเดฟเด เดจเดฟเตผเดตเตเดตเดนเดฃเด เดเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดฏ เดเดตเดถเตเดฏเดเดคเดฏเดพเดฃเต. เด เดคเดฟเดจเดพเตฝ, เดเดพเดธเตโเดเตเดเตเดเตพ เดเตเดจเตเดฆเตเดฐเตเดเตเดคเดฎเดพเดฏเดฟ เดเดธเตเดคเตเดฐเดฃเด เดเตเดฏเตเดฏเดพเดจเตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเดจเตเด เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ เดธเตเดตเดจเดเตเดเดณเตเดเต เดเดตเดถเตเดฏเดเดค เดชเตเดฐเตเดเตเดฐเดพเดฎเตผเดฎเดพเตผ เดตเดณเดฐเตเดเตเดเดพเดฒเด เดฎเตเดฎเตเดชเต เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดเตเดเต.
เดฏเตเดฃเดฟเดเตโเดธเต เดชเตเดฒเตเดณเตเดณ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเตพ เด เดตเดฏเตเดเต เดเดคเตเดญเดตเด เดตเตเตผเดทเตป 7 เดฏเตเดฃเดฟเดเตโเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฃเตเดเตเดคเตเดคเตเดจเตเดจเต, เดเดคเต เดเดดเดฟเดเตเด เดจเตเดฑเตเดฑเดพเดฃเตเดเดฟเดจเตเดฑเต 70 เดเดณเดฟเตฝ เดฌเตเตฝ เดฒเดพเดฌเดฟเตฝ เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดคเตเดคเดคเดพเดฃเต, เดชเตเดฐเดถเดธเตเดค เดเตเตป เดคเตเดเดธเตบ เดเตพเดชเตเดชเตเดเต. เดชเดคเดฟเดชเตเดชเต 7 เดฏเตเดฃเดฟเดเตเดธเดฟเตฝ เดเตเดฐเตเตบ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต, เดชเดคเดฟเดตเดพเดฏเดฟ เดธเตเดชเตเดชเตผ เดฏเตเดธเตผ เดเดพเดธเตเดเตเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดธเตเดตเดจเด.
เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดฎเตเดกเตเตบ เดเตเดฐเตเตบ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเตเดเตเดฐเดพเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดฏเดฅเดพเตผเดคเตเดฅ เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เด เตฝเดเตเดฐเดฟเดคเด เดเดคเดฟเดฒเตเด เดฒเดณเดฟเดคเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต: เดธเตเดตเดจเด เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดเดฐเดฟเดเตเดเตฝ เดเดฃเตผเดจเตเดจเต, เดเดฐเตเดฑเตเดฑ เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต (/etc/lib/crontab) เดเดพเดธเตโเดเตเดเตเดเดณเตเดณเตเดณ เดเดฐเต เดเตเดฌเดฟเตพ เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดเดคเดฟเดจเดพเดฏเดฟ เดจเดฟเตผเดตเตเดตเดนเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเดฒเดตเดฟเดฒเต เดจเดฟเดฎเดฟเดทเดคเตเดคเดฟเตฝ เดเตเดฏเตเดฏเตเดฃเตเด เดเตเดฒเดฟเดเตพ เดธเตเดชเตเดชเตผ เดฏเตเดธเตผ เดเตเดฏเตเดฏเตเด.
เดคเตเดเตผเดจเตเดจเต, เดฒเดณเดฟเดคเดตเตเด เดเดชเดฏเตเดเดชเตเดฐเดฆเดตเตเดฎเดพเดฏ เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดฑเต เดฎเตเดเตเดเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเดเตพ เดเดฒเตเดฒเดพ เดฏเตเดฃเดฟเดเตโเดธเต เดชเตเดฒเตเดณเตเดณ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเดฟเดฒเตเด เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดคเต.
เดเตเดฐเตเดฃเตเดเดพเดฌเต เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดจเตเดฑเต เดธเดพเดฎเดพเดจเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเด เดตเดฟเดตเดฐเดฃเดเตเดเดณเตเด เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต เด เดเดฟเดธเตเดฅเดพเดจ เดคเดคเตเดตเดเตเดเดณเตเด 1992-เตฝ เดฏเตเดฃเดฟเดเตเดธเต เดชเตเดฒเตเดณเตเดณ เดเดชเตเดชเดฑเตเดฑเตเดฑเดฟเดเดเต เดธเดฟเดธเตเดฑเตเดฑเดเตเดเดณเตเดเต เดชเตเดฐเดงเดพเดจ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเดพเดฏ POSIX-เตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต, เด เดเตเดเดจเต เดเดฐเต เดกเดฟ เดซเดพเดเตเดเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเตเดฐเตเตบ เดเดฐเต เดกเดฟ เดเตเตผ เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเดพเดฏเดฟ เดฎเดพเดฑเดฟ.
1987-เตฝ, เดชเตเตพ เดตเดฟเดเตเดธเดฟ, Unix เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต เดเตเดฐเตเดฃเดฟเดจเตเดเตเดณเตเดณ เด เดตเดฐเตเดเต เดเดเตเดฐเดนเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเตผเดตเต เดจเดเดคเตเดคเดฟ, เดกเตเดฎเดฃเดฟเดจเตเดฑเต เดฎเดฑเตเดฑเตเดฐเต เดชเดคเดฟเดชเตเดชเต เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเดฟ, เด เดคเต เดชเดฐเดฎเตเดชเดฐเดพเดเดค เดเตเดฐเตเดฃเดฟเดจเตเดฑเต เดเดฟเดฒ เดชเตเดฐเดถเตเดจเดเตเดเตพ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฌเดฟเตพ เดซเดฏเดฒเตเดเดณเตเดเต เดตเดพเดเตเดฏเดเดเดจ เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดคเต.
Vixie เดเตเดฐเตเดฃเดฟเดจเตเดฑเต เดฎเตเดจเตเดจเดพเด เดชเดคเดฟเดชเตเดชเต POSIX เดเดตเดถเตเดฏเดเดคเดเตพ เดจเดฟเดฑเดตเตเดฑเตเดฑเดพเตป เดคเตเดเดเตเดเดฟ, เดเตเดเดพเดคเต, เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเต เดเดฐเต เดฒเดฟเดฌเดฑเตฝ เดฒเตเดธเตปเดธเต เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด เดฒเตเดฒเตเดเตเดเดฟเตฝ README เดฒเต เดเดเตเดฐเดนเดเตเดเตพ เดเดดเดฟเดเต เดเดฐเต เดฒเตเดธเตปเดธเตเด เดเดฒเตเดฒเดพเดฏเดฟเดฐเตเดจเตเดจเต: เดฐเดเดฏเดฟเดคเดพเดตเต เดเตเดฏเดพเดฐเดฃเตเดเดฟ เดจเตฝเดเตเดจเตเดจเดฟเดฒเตเดฒ, เดฐเดเดฏเดฟเดคเดพเดตเดฟเดจเตเดฑเต เดชเตเดฐเต เดเดฒเตเดฒเดพเดคเดพเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ, เดเตเดเดพเดคเต เดธเตเดดเตเดธเต เดเตเดกเดฟเดจเตเดชเตเดชเด เดฎเดพเดคเตเดฐเดฎเต เดชเตเดฐเตเดเตเดฐเดพเด เดตเดฟเตฝเดเตเดเดพเตป เดเดดเดฟเดฏเต. เด เดเดตเดถเตเดฏเดเดคเดเตพ เด เดตเตผเดทเดเตเดเดณเดฟเตฝ เดเดจเดชเตเดฐเตเดคเดฟ เดจเตเดเดฟเดฏ เดธเตเดตเดคเดจเตเดคเตเดฐ เดธเตเดซเตโเดฑเตเดฑเตโเดตเตเดฏเดฑเดฟเดจเตเดฑเต เดคเดคเตเดตเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดคเดพเดฏเดฟ เดฎเดพเดฑเดฟ, เด เดคเดฟเดจเดพเตฝ 90-เดเดณเตเดเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเด เดเดฟเดฒ เดชเตเดฐเดงเดพเดจ เดฒเดฟเดจเดเตโเดธเต เดตเดฟเดคเดฐเดฃเดเตเดเตพ เดตเดฟเดเตโเดธเดฟ เดเตเดฐเตเดฃเดฟเดจเต เดคเดเตเดเดณเตเดเต เดธเดฟเดธเตเดฑเตเดฑเด เดเดจเตเดจเดพเดฏเดฟ เดธเตเดตเตเดเดฐเดฟเดเตเดเต, เดเดจเตเดจเตเด เด เดคเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด, Red Hat เดเด SUSE เดเด Vixie cron - cronie เดฏเตเดเต เดเดฐเต เดซเตเตผเดเตเดเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดเตเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต Debian เดเด Ubuntu เดเด Vixie เดเตเดฐเตเดฃเดฟเดจเตเดฑเต เดฏเดฅเดพเตผเดคเตเดฅ เดชเดคเดฟเดชเตเดชเต เดงเดพเดฐเดพเดณเด เดชเดพเดเตเดเตเดเดณเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
เดจเดฎเตเดเตเดเต เดเดฆเตเดฏเด POSIX-เตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดชเดฏเตเดเตเดคเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเตเดฐเตเดฃเตเดเดพเดฌเดฟเดจเต เดชเดฐเดฟเดเดฏเดชเตเดชเตเดเดพเด, เด เดคเดฟเดจเตเดถเตเดทเด Vixie เดเตเดฐเตเดฃเดฟเตฝ เดจเตฝเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดธเดฟเดจเตเดฑเดพเดเตเดธเต เดเดเตเดธเตเดฑเตเดฑเตปเดทเดจเตเดเดณเตเด เดเดจเดชเตเดฐเดฟเดฏ เดฒเดฟเดจเดเตเดธเต เดตเดฟเดคเดฐเดฃเดเตเดเดณเดฟเตฝ Vixie เดเตเดฐเตเดฃเดฟเดจเตเดฑเต เดตเตเดฏเดคเดฟเดฏเดพเดจเดเตเดเดณเตเดเต เดเดชเดฏเตเดเดตเตเด เดจเตเดเตเดเดพเด. เด เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดเตเดเตเดเดฟเดฒเต เดเตเดฑเดฟ เดเตเดฐเตเตบ เดกเตเดฎเตบ เดเดชเดเดฐเดฃเดคเตเดคเดฟเดจเตเดฑเต เดตเดฟเดถเดเดฒเดจเดฎเดพเดฃเต.
เดชเตเดธเดฟเดเตเดธเต เดเตเดฐเตเดฃเตเดเดพเดฌเต
เดฏเดฅเดพเตผเดคเตเดฅ เดเตเดฐเตเตบ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดธเตเดชเตเดชเตผเดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดเดงเตเดจเดฟเด เดทเตเดกเตเดฏเตเดณเตผเดฎเดพเตผ เดชเดฒเดชเตเดชเตเดดเตเด เดธเดพเดงเดพเดฐเดฃ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต เดเตเดฎเดคเดฒเดเตพ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเต, เด เดคเต เดเตเดเตเดคเตฝ เดธเตเดฐเดเตเดทเดฟเดคเดตเตเด เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดตเตเดฎเดพเดฃเต.
เดฐเดฃเตเดเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเดณเตเดเต เดเดฐเต เดเตเดเตเดเดฎเดพเดฏเดพเดฃเต เดเตเดฐเตเดฃเตเดเตพ เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเต: เดจเดฟเดฐเดจเตเดคเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเตเดฐเตเตบ เดกเตเดฎเดฃเตเด เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเต เดฒเดญเตเดฏเดฎเดพเดฏ เดเตเดฐเตเดฃเตเดเดพเดฌเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเด. เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเต เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเด เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเดเตพ เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเตป เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเต เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, เด เดคเตเดธเดฎเดฏเด เดกเตเดฎเตบ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเดณเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดเดพเดธเตโเดเตเดเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต.
ะ
เดเตเดฐเตเดฃเตเดเดพเดฌเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเดฟเดฒเตเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต, เดจเดฟเดเตเดเตพเดเตเดเต เดจเดพเดฒเต เดเดพเดฐเตเดฏเดเตเดเตพ เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด: เดเดกเดฟเดฑเตเดฑเดฑเดฟเตฝ เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดเดพเดธเตโเดเต เดเตเดฌเดฟเตพ เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด, เดเดฐเต เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเดฌเดฟเตพ เดฒเตเดกเต เดเตเดฏเตเดฏเตเด, เดจเดฟเดฒเดตเดฟเดฒเต เดเดพเดธเตโเดเต เดเตเดฌเดฟเตพ เดเดพเดฃเดฟเดเตเดเตเด, เดเดพเดธเตโเดเต เดเตเดฌเดฟเตพ เดฎเดพเดฏเตโเดเตเดเตเด. เดเตเดฐเตเดฃเตเดเดพเดฌเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ:
crontab -e # ัะตะดะฐะบัะธัะพะฒะฐัั ัะฐะฑะปะธัั ะทะฐะดะฐั
crontab -l # ะฟะพะบะฐะทะฐัั ัะฐะฑะปะธัั ะทะฐะดะฐั
crontab -r # ัะดะฐะปะธัั ัะฐะฑะปะธัั ะทะฐะดะฐั
crontab path/to/file.crontab # ะทะฐะณััะทะธัั ัะฐะฑะปะธัั ะทะฐะดะฐั ะธะท ัะฐะนะปะฐ
เดตเดฟเดณเดฟเดเตเดเตเดฎเตเดชเตเตพ crontab -e
เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏ เดเดกเดฟเดฑเตเดฑเตผ เดเดชเดฏเตเดเดฟเดเตเดเตเด EDITOR
.
เดเตเดฎเดคเดฒเดเตพ เดคเดจเตเดจเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
# ัััะพะบะธ-ะบะพะผะผะตะฝัะฐัะธะธ ะธะณะฝะพัะธัััััั
#
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะตะถะตะผะธะฝััะฝะพ
* * * * * /path/to/exec -a -b -c
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฝะฐ 10-ะน ะผะธะฝััะต ะบะฐะถะดะพะณะพ ัะฐัะฐ
10 * * * * /path/to/exec -a -b -c
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฝะฐ 10-ะน ะผะธะฝััะต ะฒัะพัะพะณะพ ัะฐัะฐ ะบะฐะถะดะพะณะพ ะดะฝั ะธ ะธัะฟะพะปัะทัััะฐั ะฟะตัะตะฝะฐะฟัะฐะฒะปะตะฝะธะต ััะฐะฝะดะฐััะฝะพะณะพ ะฟะพัะพะบะฐ ะฒัะฒะพะดะฐ
10 2 * * * /path/to/exec -a -b -c > /tmp/cron-job-output.log
เดฑเตเดเตเดเตเตผเดกเตเดเดณเตเดเต เดเดฆเตเดฏ เด เดเตเดเต เดซเตเตฝเดกเตเดเตพ: เดฎเดฟเดจเดฟเดฑเตเดฑเต [1..60], เดฎเดฃเดฟเดเตเดเตเตผ [0..23], เดฎเดพเดธเดคเตเดคเดฟเดฒเต เดฆเดฟเดตเดธเดเตเดเตพ [1..31], เดฎเดพเดธเดเตเดเตพ [1..12], เดเดดเตเดเดฏเดฟเดฒเต เดฆเดฟเดตเดธเดเตเดเตพ [0. .6], เดเดตเดฟเดเต 0 เดเดพเดฏเดฑเดพเดดเตเดเดฏเดพเดฃเต. เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดฎเดพเตปเดกเต เดเดจเตเดฑเตผเดชเตเดฐเตเดฑเตเดฑเตผ เดเดเตเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเต เดตเดฐเดฟเดฏเดพเดฃเต เด เดตเดธเดพเดจเดคเตเดคเต, เดเดฑเดพเดฎเดคเตเดคเต, เดซเตเตฝเดกเต.
เดเดฆเตเดฏเดคเตเดคเต เด เดเตเดเต เดซเตเตฝเดกเตเดเดณเดฟเตฝ, เดฎเตเดฒเตเดฏเดเตเดเดณเต เดเตเดฎเดเดณเดพเตฝ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเดพเดจเดพเดเตเด:
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฒ ะฟะตัะฒัั ะธ ะดะตััััั ะผะธะฝััั ะบะฐะถะดะพะณะพ ัะฐัะฐ
1,10 * * * * /path/to/exec -a -b -c
เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฐเต เดนเตเดซเตป เดเดชเดฏเตเดเดฟเดเตเดเต:
# ะทะฐะดะฐัะฐ, ะฒัะฟะพะปะฝัะตะผะฐั ะฒ ะบะฐะถะดัั ะธะท ะฟะตัะฒัั
ะดะตัััะธ ะผะธะฝัั ะบะฐะถะดะพะณะพ ัะฐัะฐ
0-9 * * * * /path/to/exec -a -b -c
เดเดพเดธเตโเดเต เดทเตเดกเตเดฏเตเดณเดฟเดเดเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดชเดฏเตเดเตเดคเต เดเดเตโเดธเดธเต POSIX-เตฝ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเดคเต cron.allow, cron.deny เดซเดฏเดฒเตเดเดณเดพเดฃเต, เดเดคเต เดฏเดฅเดพเดเตเดฐเดฎเด crontab-เดฒเตเดเตเดเต เดเดเตโเดธเดธเต เดเดณเตเดณ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดฏเตเด เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดฒเตเดเตเดเต เดเดเตโเดธเดธเต เดเดฒเตเดฒเดพเดคเตเดค เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดฏเตเด เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เด เดซเดฏเดฒเตเดเดณเตเดเต เดธเตเดฅเดพเดจเด เดเดฐเต เดคเดฐเดคเตเดคเดฟเดฒเตเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เด เดจเตเดธเดฐเดฟเดเตเดเต, เดฒเตเดเตเดเต เดเตเดฏเตเดค เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเดณเดฟเดฒเตเดเตเดเต เดเตเดฑเดเตเดเดคเต เดจเดพเดฒเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเตเดเดฟเดฒเตเด เดจเตฝเดเดฃเด:
- เดนเตเด - เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดนเตเด เดกเดฏเดฑเดเตเดเดฑเดฟ.
- LOGNAME โ เดเดชเดฏเตเดเตเดคเต เดฒเตเดเดฟเตป.
- เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดธเดฟเดธเตเดฑเตเดฑเด เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเตพ เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเดจเตเดจ เดชเดพเดคเดฏเดพเดฃเต PATH.
- เดทเตเตฝ โ เดเดชเดฏเตเดเดฟเดเตเด เดเดฎเดพเตปเดกเต เดเดจเตเดฑเตผเดชเตเดฐเตเดฑเตเดฑเดฑเดฟเดฒเตเดเตเดเตเดณเตเดณ เดชเดพเดค.
เด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเต เดฎเตเดฒเตเดฏเดเตเดเตพ เดเดตเดฟเดเต เดจเดฟเดจเตเดจเต เดตเดฐเตเดจเตเดจเต เดเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต POSIX เดเดจเตเดจเตเด เดชเดฑเดฏเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเตเดฏเดฎเดพเดฃเต.
เดฌเตเดธเตเดฑเตเดฑเต เดธเตเดฒเตเดฒเตผ - Vixie cron 3.0pl1
3.0-เตฝ comp.sources.unix เดฎเตเดฏเดฟเดฒเดฟเดเดเต เดฒเดฟเดธเตเดฑเตเดฑเดฟเตฝ เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเด Vixie cron 1pl1992 เดเดฃเต เดเดจเดชเตเดฐเดฟเดฏ เดเตเดฐเตเตบ เดตเตเดฐเดฟเดฏเดจเตเดฑเตเดเดณเตเดเต เดชเตเดคเต เดชเตเตผเดตเตเดตเดฟเดเตป. เด เดชเดคเดฟเดชเตเดชเดฟเดจเตเดฑเต เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเตเดทเดคเดเตพ เดเดเตเดเตพ เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด.
เดตเดฟเดเตเดธเดฟ เดเตเดฐเตเตบ เดฐเดฃเตเดเต เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเดณเดฟเดฒเดพเดฃเต เดตเดฐเตเดจเตเดจเดคเต (เดเตเดฐเตเตบ, เดเตเดฐเตเดฃเตเดเดพเดฌเต). เดชเดคเดฟเดตเตเดชเตเดฒเต, เดธเดฟเดธเตเดฑเตเดฑเด เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดตเตเดฏเดเตเดคเดฟเดเดค เดเดชเดฏเตเดเตเดคเต เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดเดพเดธเตโเดเตเดเตเดเตพ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดกเตเดฎเตบ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดฏเดพเดฃเต, เดเตเดเดพเดคเต เดเดชเดฏเตเดเตเดคเต เดชเดเตเดเดฟเดเดเตพ เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด เดเตเดฐเตเดฃเตเดเดพเดฌเต เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเดพเดฃเต.
เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเด เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเดณเตเด
เดธเตเดชเตเดชเตผ เดฏเตเดธเตผ เดเดพเดธเตโเดเต เดเตเดฌเดฟเตพ /etc/crontab-เตฝ เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเดณเดฟเดจเตเดฑเต เดตเดพเดเตเดฏเดเดเดจ เดตเดฟเดเตเดธเดฟ เดเตเดฐเตเดฃเดฟเดจเตเดฑเต เดตเดพเดเตเดฏเดเดเดจเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเต, เด เดคเดฟเดฒเต เดเดฑเดพเดฎเดคเตเดคเต เดเตเดณเด เดเดฐเตเดเต เดชเตเดฐเดฟเตฝ เดเดพเดธเตโเดเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเตเดตเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเต เดชเตเดฐเต เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเดคเตเดดเดฟเดเตเดเดพเตฝ:
# ะะฐะฟััะบะฐะตััั ะตะถะตะผะธะฝััะฝะพ ะพั ะฟะพะปัะทะพะฒะฐัะตะปั vlad
* * * * * vlad /path/to/exec
เดธเดพเดงเดพเดฐเดฃ เดเดชเดฏเตเดเตเดคเต เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเดเตพ /var/cron/tabs/username-เตฝ เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต, เด เดคเต เดตเดพเดเตเดฏเดเดเดจเดฏเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเตพ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดพเดฏเดฟ crontab เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดกเดฟเดฑเตเดฑเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดจเตเดจ เดซเดฏเดฒเตเดเตพ เดเดตเดฏเดพเดฃเต.
crontab-เดฒเตเดเตเดเต เดเดเตโเดธเดธเต เดเดณเตเดณ เดเดชเดฏเตเดเตเดคเดพเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเตเดเตพ เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเดคเต /var/cron/allow, /var/cron/deny เดเดจเตเดจเต เดซเดฏเดฒเตเดเดณเดฟเตฝ เดเดฃเต, เด เดตเดฟเดเต เดจเดฟเดเตเดเตพ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดตเดฐเดฟเดฏเดฟเตฝ เดเดชเดฏเตเดเตเดคเต เดจเดพเดฎเด เดจเตฝเดเตเดฃเตเดเดคเตเดฃเตเดเต.
เดตเดฟเดชเตเดฒเตเดเดฐเดฟเดเตเด เดตเดพเดเตเดฏเดเดเดจ
เดชเตเดธเดฟเดเตเดธเต เดเตเดฐเตเดฃเตเดเดพเดฌเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเตเดเตเดคเตเดคเตเดฎเตเดชเตเตพ, เดชเตเตพ เดตเดฟเดเตเดธเดฟเดฏเตเดเต เดชเดฐเดฟเดนเดพเดฐเดคเตเดคเดฟเตฝ เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดฏเตเดเต เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเดเดณเตเดเต เดตเดพเดเตเดฏเดเดเดจเดฏเดฟเตฝ เดตเดณเดฐเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ เดจเดฟเดฐเดตเดงเดฟ เดชเดฐเดฟเดทเตโเดเตเดเดฐเดฃเดเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดชเตเดคเดฟเดฏ เดชเดเตเดเดฟเด เดตเดพเดเตเดฏเดเดเดจ เดฒเดญเตเดฏเดฎเดพเดฃเต: เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต เดเดดเตโเดเดฏเดฟเดฒเต เดฆเดฟเดตเดธเดเตเดเดณเต เดฎเดพเดธเดเตเดเดณเต เดชเตเดฐเต เดชเตเดฐเดเดพเดฐเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเด (เดคเดฟเดเตเดเตพ, เดเตเดตเตเดต, เดฎเตเดคเดฒเดพเดฏเดต):
# ะะฐะฟััะบะฐะตััั ะตะถะตะผะธะฝััะฝะพ ะฟะพ ะฟะพะฝะตะดะตะปัะฝะธะบะฐะผ ะธ ะฒัะพัะฝะธะบะฐะผ ะฒ ัะฝะฒะฐัะต
* * * Jan Mon,Tue /path/to/exec
เดเดพเดธเตโเดเตเดเตเดเตพ เดฒเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจ เดเดเตเดเด เดจเดฟเดเตเดเตพเดเตเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเด:
# ะะฐะฟััะบะฐะตััั ั ัะฐะณะพะผ ะฒ ะดะฒะต ะผะธะฝััั
*/2 * * * Mon,Tue /path/to/exec
เดเดเตเดเดเตเดเดณเตเด เดเดเดตเตเดณเดเดณเตเด เดฎเดฟเดถเตเดฐเดฟเดคเดฎเดพเดเตเดเดพเด:
# ะะฐะฟััะบะฐะตััั ั ัะฐะณะพะผ ะฒ ะดะฒะต ะผะธะฝััั ะฒ ะฟะตัะฒัั
ะดะตัััั ะผะธะฝัั ะบะฐะถะดะพะณะพ ัะฐัะฐ
0-10/2 * * * * /path/to/exec
เดธเดพเดงเดพเดฐเดฃ เดตเดพเดเตเดฏเดเดเดจเดฏเตเดเตเดเตเดณเตเดณ เด เดตเดฌเตเดงเดเดจเตเดฏเดฎเดพเดฏ เดฌเดฆเดฒเตเดเตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต (เดฑเตเดฌเตเดเตเดเต, เดตเดพเตผเดทเดฟเดเด, เดตเดพเตผเดทเดฟเดเด, เดชเตเดฐเดคเดฟเดฎเดพเดธ, เดชเตเดฐเดคเดฟเดตเดพเดฐ, เดฆเดฟเดตเดธเตเดจ, เด เตผเดฆเตเดงเดฐเดพเดคเตเดฐเดฟ, เดฎเดฃเดฟเดเตเดเตเตผ เดคเตเดฑเตเด):
# ะะฐะฟััะบะฐะตััั ะฟะพัะปะต ะฟะตัะตะทะฐะณััะทะบะธ ัะธััะตะผั
@reboot /exec/on/reboot
# ะะฐะฟััะบะฐะตััั ัะฐะท ะฒ ะดะตะฝั
@daily /exec/daily
# ะะฐะฟััะบะฐะตััั ัะฐะท ะฒ ัะฐั
@hourly /exec/daily
เดเดพเดธเตเดเต เดเดเตเดธเดฟเดเตเดฏเตเดทเตป เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ
เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเดเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดฎเดพเดฑเตเดฑเดพเตป Vixie เดเตเดฐเตเตบ เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ USER, LOGNAME, HOME เดเดจเตเดจเดฟเดต เดเตเดตเดฒเด เดกเตเดฎเตบ เดจเตฝเดเดฟเดฏเดคเดฒเตเดฒ, เดฎเดฑเดฟเดเตเดเต เดเดฐเต เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดคเตเดคเดคเดพเดฃเต
เดเดฟเดฒ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ (เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเต เดทเตเตฝ, เดนเตเด เดเดจเตเดจเดฟเดต) เดเดพเดธเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเตเดฐเตเตบ เดคเดจเตเดจเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดพเดธเตโเดเตเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต sh-เดจเต เดชเดเดฐเด เดฌเดพเดทเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดเตเดเดจเตเดฏเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด:
SHELL=/bin/bash
HOME=/tmp/
# exec ะฑัะดะตั ะทะฐะฟััะตะฝ bash-ะตะผ ะฒ /tmp/
* * * * * /path/to/exec
เดเดคเตเดฏเดจเตเดคเดฟเดเดฎเดพเดฏเดฟ, เดเตเดฌเดฟเดณเดฟเตฝ เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฒเตเดฒเดพ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด (เดเตเดฐเตเตบ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเต เดเดตเดถเตเดฏเดฎเดพเดฃเต) เดฑเดฃเตเดฃเดฟเดเดเต เดเดพเดธเตเดเตเดเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเตเด.
เดซเดฏเดฒเตเดเตพ เดเดกเดฟเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดตเดฟเดทเตเดตเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดกเดฟเดฑเตเดฑเตผ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏ เดเดกเดฟเดฑเตเดฑเตผ crontab เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเตเดฐเตเดฃเตเดเดพเดฌเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเด เดชเดฐเดฟเดคเดธเตเดฅเดฟเดคเดฟเดฏเดฟเตฝ เด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, "/usr/ucb/vi" เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต (ucb เดเดฐเตเดชเดเตเดทเต เดเดพเดฒเดฟเดซเตเตผเดฃเดฟเดฏ เดธเตผเดตเดเดฒเดพเดถเดพเดฒ, เดฌเตเตผเดเตเดเตโเดฒเดฟ).
เดกเตเดฌเดฟเดฏเตป, เดเดฌเตเดฃเตเดเต เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเตเดฐเตเตบ
เดกเตเดฌเดฟเดฏเตป, เดกเตเดฑเดฟเดตเตเดฑเตเดฑเตเดตเต เดกเดฟเดธเตเดเตเดฐเดฟเดฌเตเดฏเตเดทเดจเตเดเดณเตเดเต เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดชเตเดฑเดคเตเดคเดฟเดฑเดเตเดเดฟ
เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดซเดฏเดฒเตเดเดณเตเดเตเดฏเตเด เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเดเดณเตเดเตเดฏเตเด เดฒเตเดเตเดเตเดทเดจเตเด เดถเตเดฐเดฆเตเดงเดฏเดฟเตฝเดชเตเดชเตเดเดพเดคเตเดคเดคเตเด เดเดจเตเดจเดพเตฝ เดฎเตเตผเดเตเดเดฏเตเดณเตเดณเดคเตเดฎเดพเดฏ เดฎเดพเดฑเตเดฑเดเตเดเดณเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดจเตเดจเต.
เดกเตเดฌเดฟเดฏเดจเดฟเดฒเต เดเดชเดฏเตเดเตเดคเต เดชเดเตเดเดฟเดเดเตพ /var/spool/cron/crontabs เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเดฟเดฒเดพเดฃเต เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเดคเต, เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเตพ เดเดชเตเดชเตเดดเตเด เด เดตเดฟเดเตเดฏเตเดฃเตเดเต - /etc/crontab-เตฝ. เดกเตเดฌเดฟเดฏเตป เดชเดพเดเตเดเตเดเต-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเตเดเตพ /etc/cron.d-เตฝ เดธเตเดฅเดพเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เด เดตเดฟเดเต เดจเดฟเดจเตเดจเต เดเตเดฐเตเตบ เดกเตเดฎเตบ เด เดต เดธเตเดตเดฏเดฎเตเดต เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต. เดเดชเดฏเตเดเตเดคเต เดเดเตเดธเดธเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเดคเต /etc/cron.allow, /etc/cron.deny เดซเดฏเดฒเตเดเดณเดพเดฃเต.
เดกเดฟเดซเตเตพเดเตเดเต เดทเตเตฝ เดเดชเตเดชเตเดดเตเด /bin/sh เดเดฃเต, เดกเตเดฌเดฟเดฏเดจเดฟเตฝ เดเดคเต เดเดฐเต เดเตเดฑเดฟเดฏ POSIX-เดเดเดชเตเดฒเดฏเดจเตเดฑเต เดทเตเดฒเตเดฒเดพเดฃเต.
เดกเตเดฌเดฟเดฏเดจเตเดฑเต เดเดฑเตเดฑเดตเตเด เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเดเดณเดฟเตฝ เดเตเดฐเตเตบ เดคเดจเตเดจเต systemd เดตเดดเดฟเดฏเดพเดฃเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเต, เดเตเดเดพเดคเต เดฒเตเดเตเดเต เดเตเตบเดซเดฟเดเดฑเตเดทเตป /lib/systemd/system/cron.service-เตฝ เดเดพเดฃเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดธเตเดตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเดจเดฟเตฝ เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเด เดเดฒเตเดฒ; เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเตเดฑเตเดฏเตเด เดเตเดฐเตเดฃเตเดเดพเดฌเดฟเตฝ เดจเตเดฐเดฟเดเตเดเต เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเดฟเดเตเดเตเดณเตเดณ เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดตเดดเดฟ เดเตเดเตเดคเตฝ เดธเตเดเตเดทเตเดฎเดฎเดพเดฏ เดเดพเดธเตโเดเต เดฎเดพเดจเตเดเตโเดฎเตเดจเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
RedHat, Fedora, CentOS เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเต เดเตเดฐเตเดฃเดฟ
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดธเดพเดงเดพเดฐเดฃ เดธเตเดฅเดฒเดเตเดเดณเดฟเดฒเดพเดฃเต: เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฌเดฟเตพ /etc/crontab-เดฒเดพเดฃเต, เดชเดพเดเตเดเตเดเตเดเตพ เด เดตเดฏเตเดเต เดเตเดฌเดฟเดณเตเดเตพ /etc/cron.d-เตฝ เดเดเตเดจเตเดจเต, เดเดชเดฏเตเดเตเดคเต เดชเดเตเดเดฟเดเดเตพ /var/spool/cron/crontabs-เตฝ เดชเตเดเตเดจเตเดจเต.
เดกเตเดฎเตบ systemd เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดคเตเดคเดฟเดฒเดพเดฃเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดคเต, เดธเตเดตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเตป /lib/systemd/system/crond.service เดเดฃเต.
Red Hat เดชเตเดฒเตเดณเตเดณ เดตเดฟเดคเดฐเดฃเดเตเดเดณเดฟเตฝ, เดธเตเดฑเตเดฑเดพเตผเดเตเดเดชเตเดชเดฟเตฝ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ /bin/sh เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฌเดพเดทเต เดเดฃเต. /bin/sh เดตเดดเดฟ เดเตเดฐเตเตบ เดเตเดฒเดฟเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดฌเดพเดทเต เดทเตเตฝ POSIX-เดเดเดชเตเดฒเดฏเดจเตเดฑเต เดฎเตเดกเดฟเตฝ เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดจเตเตบ-เดเดจเตเดฑเดฑเดพเดเตเดเตเดตเต เดฎเตเดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เด เดงเดฟเด เดเตเตบเดซเดฟเดเดฑเตเดทเดจเตเด เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ เดเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต.
SLES, openSUSE เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดเตเดฐเตเดฃเดฟ
เดเตผเดฎเตเดฎเตป เดกเดฟเดธเตเดเตเดฐเดฟเดฌเตเดฏเตเดทเตป SLES เดเด เด เดคเดฟเดจเตเดฑเต เดกเตเดฑเดฟเดตเตเดฑเตเดฑเตเดตเต openSUSE เดเด เดเดฐเต เดเตเดฐเตเดฃเดฟเดฏเดพเดฃเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต. เดเดตเดฟเดเตเดฏเตเดณเตเดณ เดกเตเดฎเตบ systemd-เดจเต เดเตเดดเดฟเตฝ เดฒเตเดเตเดเต เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดจเตเดจเต, เดธเตเดตเดจ เดเตเตบเดซเดฟเดเดฑเตเดทเตป /usr/lib/systemd/system/cron.service-เตฝ เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเตเตบเดซเดฟเดเดฑเตเดทเตป: /etc/crontab, /etc/cron.d, /var/spool/cron/tabs. POSIX-เดเดเดชเตเดฒเดฏเดจเตเดฑเต เดจเตเตบ-เดเดจเตเดฑเดฑเดพเดเตเดเตเดตเต เดฎเตเดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เด เดคเต เดฌเดพเดทเต เดเดฃเต /bin/sh.
เดตเดฟเดเตเดธเดฟ เดเตเดฐเตเตบ เดเดชเดเดฐเดฃเด
เดตเดฟเดเตเดธเดฟ เดเตเดฐเตเดฃเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเตเดเตเดคเตเดคเตเดฎเตเดชเตเตพ เดเตเดฐเตเดฃเดฟเดจเตเดฑเต เดเดงเตเดจเดฟเด เดชเดฟเตปเดเดพเดฎเดฟเดเตพ เดธเดฎเตเดฒเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดฑเต เดคเดคเตเดตเดเตเดเตพ เดฎเดจเดธเดฟเดฒเดพเดเตเดเดพเตป เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดค เดชเตเดคเดฟเดฏ เดธเดตเดฟเดถเตเดทเดคเดเตพ เดเดชเตเดชเตเดดเตเด เดจเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เด เดตเดฟเดชเตเดฒเตเดเดฐเดฃเดเตเดเดณเดฟเตฝ เดชเดฒเดคเตเด เดฎเตเดถเดฎเดพเดฏเดฟ เดฐเตเดชเดเตฝเดชเตเดชเดจ เดเตเดฏเตโเดคเดคเตเด เดเตเดกเดฟเดจเต เดเดถเดฏเดเตเดเตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเตเดฎเดพเดฃเต. เดชเตเตพ เดตเดฟเดเตเดธเดฟเดฏเตเดเต เดฏเดฅเดพเตผเดคเตเดฅ เดเตเดฐเตเตบ เดธเตเดดเตเดธเต เดเตเดกเต เดตเดพเดฏเดฟเดเตเดเดพเตป เดธเดจเตเดคเตเดทเดฎเตเดฃเตเดเต.
เด เดคเดฟเดจเดพเตฝ, เดตเดฟเดเดธเดจเดคเตเดคเดฟเดจเตเดฑเต เดฐเดฃเตเดเต เดถเดพเดเดเตพเดเตเดเตเด เดชเตเดคเตเดตเดพเดฏเตเดณเตเดณ เดเดฐเต เดเตเดฐเตเตบ เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเตเดฐเตเตบ เดเดชเดเดฐเดฃเด เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดพเตป เดเดพเตป เดคเตเดฐเตเดฎเดพเดจเดฟเดเตเดเต - Vixie cron 3.0pl1. เดตเดพเดฏเดจเดฏเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดเตเดเตเดจเตเดจ ifdefs เดจเตเดเตเดเด เดเตเดฏเตเดคเตเด เดเตเดฑเดฟเดฏ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เดเดดเดฟเดตเดพเดเตเดเดฟเดฏเตเด เดเดพเตป เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดฒเดณเดฟเดคเดฎเดพเดเตเดเตเด.
เดญเตเดคเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเต เดชเดฒ เดเดเตเดเดเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดพเด:
- เดชเตเดฐเตเดเตเดฐเดพเด เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตฝ.
- เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดฃเตเด เดเตเดฒเดฟเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดถเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
- เดชเตเดฐเดงเดพเดจ เดเตเดฐเตเตบ เดฒเตเดชเตเดชเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต.
- เดเดฐเต เดเดพเดธเตเดเต เดเดฐเดเดญเดฟเดเตเดเตเด.
เดจเดฎเตเดเตเดเต เด เดตเดฏเต เดเตเดฐเดฎเดคเตเดคเดฟเตฝ เดจเตเดเตเดเดพเด.
เดชเตเดฐเดพเดฐเดเดญเด
เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดชเตเดฐเตเดธเดธเตเดธเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเด เดถเตเดทเด, เดเตเดฐเตเตบ SIGCHLD, SIGHUP เดธเดฟเดเตเดจเตฝ เดนเดพเตปเดกเตโเดฒเดฑเตเดเตพ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฆเตเดฏเดคเตเดคเตเดคเต เดเตเตฝเดกเต เดชเตเดฐเตเดธเดธเต เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเดฐเต เดฒเตเดเต เดเตปเดเตเดฐเดฟ เดจเดเดคเตเดคเตเดจเตเดจเต, เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเต เดฒเตเดเต เดซเดฏเดฒเดฟเดจเตเดฑเต เดซเดฏเตฝ เดกเดฟเดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเตผ เด เดเดฏเตเดเตเดเตเดจเตเดจเต:
signal(SIGCHLD, sigchld_handler);
signal(SIGHUP, sighup_handler);
เดเตเดฐเตเตบ เดกเตเดฎเตบ เดเดฒเตเดฒเดพเดฏเตโเดชเตเดชเตเดดเตเด เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ เดเดฑเตเดฑเดฏเตโเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเดฐเต เดธเตเดชเตเดชเตผ เดฏเตเดธเดฑเดพเดฏเตเด เดชเตเดฐเดงเดพเดจ เดเตเดฐเตเตบ เดกเดฏเดฑเดเตโเดเดฑเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดฎเดพเดคเตเดฐเด. เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเตเดณเตเดเตพ เดกเตเดฎเตบ เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเตเดฑเต PID เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดฒเตเดเตเดเต เดซเดฏเตฝ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดชเดฏเตเดเตเดคเดพเดตเต เดถเดฐเดฟเดฏเดพเดฃเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเดเดฏเตเด เดจเดฟเดฒเดตเดฟเดฒเต เดกเดฏเดฑเดเตโเดเดฑเดฟ เดชเตเดฐเดงเดพเดจ เดเดจเตเดจเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต:
acquire_daemonlock(0);
set_cron_uid();
set_cron_cwd();
เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ เดชเดพเดค เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดชเตเดฐเตเดธเดธเตเดธเตเดเตพ เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด:
setenv("PATH", _PATH_DEFPATH, 1);
เดคเตเดเตผเดจเตเดจเต เดชเตเดฐเตเดธเดธเตเดธเต โเดกเตเดฎเตเดฃเตเดธเตเดกเตโ เดเดฃเต: เดเดคเต เดซเตเตผเดเตเดเต เดตเดฟเดณเดฟเดเตเดเต เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต เดเดฐเต เดเตเตฝเดกเต เดเตเดชเตเดชเดฟเดฏเตเด เดเตเตฝเดกเต เดชเตเดฐเตเดธเดธเดฟเตฝ เดเดฐเต เดชเตเดคเดฟเดฏ เดธเตเดทเดจเตเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต (เดธเตเดฑเตเดฑเตโเดธเดฟเดกเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต). เดชเดพเดฐเดจเตเดฑเต เดชเตเดฐเตเดธเดธเตเดธเต เดเดจเดฟ เดเดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ, เด เดคเต เดชเตเดฑเดคเตเดคเตเดเดเดเตเดเตเดจเตเดจเต:
switch (fork()) {
case -1:
/* ะบัะธัะธัะตัะบะฐั ะพัะธะฑะบะฐ ะธ ะทะฐะฒะตััะตะฝะธะต ัะฐะฑะพัั */
exit(0);
break;
case 0:
/* ะดะพัะตัะฝะธะน ะฟัะพัะตัั */
(void) setsid();
break;
default:
/* ัะพะดะธัะตะปััะบะธะน ะฟัะพัะตัั ะทะฐะฒะตััะฐะตั ัะฐะฑะพัั */
_exit(0);
}
เดชเดพเดฐเดจเตเดฑเต เดชเตเดฐเตเดธเดธเต เด เดตเดธเดพเดจเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเต เดฒเตเดเตเดเต เดซเดฏเดฒเดฟเดฒเต เดฒเตเดเตเดเต เดฑเดฟเดฒเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเตเดเดพเดคเต, เดซเดฏเดฒเดฟเดฒเต PID เดเตเดเตเดเดฟเดเตเดเต เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดคเดฟเดจเตเดถเตเดทเด, เดเดพเดธเตโเดเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดคเดฟเตฝ เดจเดฟเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
/* ะฟะพะฒัะพัะฝัะน ะทะฐั
ะฒะฐั ะปะพะบะฐ */
acquire_daemonlock(0);
/* ะะฐะฟะพะปะฝะตะฝะธะต ะะ */
database.head = NULL;
database.tail = NULL;
database.mtime = (time_t) 0;
load_database(&database);
เดคเตเดเตผเดจเตเดจเต เดเตเดฐเตเตบ เดชเตเดฐเดงเดพเดจ เดตเตผเดเตเดเต เดธเตเดเตเดเดฟเดณเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เด เดคเดฟเดจเตเดฎเตเดฎเตเดชเต, เดเดพเดธเตโเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเตเดกเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดจเตเดเตเดเตเดจเตเดจเดคเต เดฎเตเดฒเตเดฏเดตเดคเตเดคเดพเดฃเต.
เดเดพเดธเตโเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดถเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต
เดเดพเดธเตเดเตเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดคเตเดคเด load_database เดซเดเดเตเดทเดจเดพเดฃเต. เดเดชเดฏเตเดเตเดคเต เดซเดฏเดฒเตเดเดณเตเดณเตเดณ เดชเตเดฐเดงเดพเดจ เดธเดฟเดธเตเดฑเตเดฑเด เดเตเดฐเตเดฃเตเดเดพเดฌเตเด เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเตเด เดเดคเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต. เดซเดฏเดฒเตเดเดณเตเด เดกเดฏเดฑเดเตเดเดฑเดฟเดฏเตเด เดฎเดพเดฑเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเดพเดธเตโเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดตเตเดฃเตเดเตเด เดตเดพเดฏเดฟเดเตเดเดฟเดฒเตเดฒ. เด เดฒเตเดฒเตเดเตเดเดฟเตฝ, เดเตเดฒเดฟเดเดณเตเดเต เดเดฐเต เดชเตเดคเดฟเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เดฐเตเดชเดชเตเดชเตเดเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเต.
เดชเตเดฐเดคเตเดฏเตเด เดซเดฏเดฒเตเดเดณเตเด เดชเดเตเดเดฟเด เดจเดพเดฎเดเตเดเดณเตเด เดเดณเตเดณ เดเดฐเต เดธเดฟเดธเตเดฑเตเดฑเด เดซเดฏเตฝ เดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต:
/* ะตัะปะธ ัะฐะนะป ัะธััะตะผะฝะพะน ัะฐะฑะปะธัั ะธะทะผะตะฝะธะปัั, ะฟะตัะตัะธััะฒะฐะตะผ */
if (syscron_stat.st_mtime) {
process_crontab("root", "*system*",
SYSCRONTAB, &syscron_stat,
&new_db, old_db);
}
เดเดฐเต เดฒเตเดชเตเดชเดฟเตฝ เดเดชเดฏเตเดเตเดคเต เดชเดเตเดเดฟเดเดเตพ เดฒเตเดกเตเดเตเดฏเตเดฏเตเดจเตเดจเต:
while (NULL != (dp = readdir(dir))) {
char fname[MAXNAMLEN+1],
tabname[MAXNAMLEN+1];
/* ัะธัะฐัั ัะฐะนะปั ั ัะพัะบะพะน ะฝะต ะฝะฐะดะพ*/
if (dp->d_name[0] == '.')
continue;
(void) strcpy(fname, dp->d_name);
sprintf(tabname, CRON_TAB(fname));
process_crontab(fname, fname, tabname,
&statbuf, &new_db, old_db);
}
เด เดคเดฟเดจเตเดถเตเดทเด เดชเดดเดฏ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดชเตเดคเดฟเดฏเตเดฐเตเดฃเตเดฃเด เดเดชเดฏเตเดเดฟเดเตเดเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเตเดจเตเดจเต.
เดฎเตเดเดณเดฟเดฒเต เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเดฟเตฝ, process_crontab เดซเดเดเตโเดทเตป เดเตเตพ, เดเตเดฌเดฟเตพ เดซเดฏเดฒเดฟเดจเตเดฑเต เดชเตเดฐเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจ เดเดฐเต เดเดชเดฏเตเดเตเดคเดพเดตเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดเตเดจเตเดจเต เดธเตเดฅเดฟเดฐเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต (เด เดคเต เดเดฐเต เดธเตเดชเตเดชเตผ เดฏเตเดธเตผ เด เดฒเตเดฒเดพเดคเตเดค เดชเดเตเดทเด) เดคเตเดเตผเดจเตเดจเต load_user-เดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต. เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเต เดเดคเดฟเดจเดเด เดคเดจเตเดจเต เดตเดฐเดฟ เดตเดฐเดฟเดฏเดพเดฏเดฟ เดซเดฏเตฝ เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต:
while ((status = load_env(envstr, file)) >= OK) {
switch (status) {
case ERR:
free_user(u);
u = NULL;
goto done;
case FALSE:
e = load_entry(file, NULL, pw, envp);
if (e) {
e->next = u->crontab;
u->crontab = e;
}
break;
case TRUE:
envp = env_set(envp, envstr);
break;
}
}
เดเดตเดฟเดเต, เดเดจเตเดจเตเดเดฟเตฝ load_env / env_set เดซเดเดเตโเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (เดซเตเด VAR=เดฎเตเดฒเตเดฏเด) เด เดฒเตเดฒเตเดเตเดเดฟเตฝ load_entry เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดพเดธเตโเดเต เดตเดฟเดตเดฐเดฃเด เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเต (* * * * * /path/to/exec).
เดฒเตเดกเต_เดเตปเดเตเดฐเดฟ เดฑเดฟเดเตเดเตเตบ เดจเตฝเดเตเดจเตเดจ เดเตปเดเตเดฐเดฟ เดเดจเตเดฑเดฟเดฑเตเดฑเดฟเดฏเดพเดฃเต เดเดเตเดเดณเตเดเต เดเดพเดธเตเดเตเดเต, เด เดคเต เดเดพเดธเตเดเตเดเตเดเดณเตเดเต เดชเตเดคเตเดตเดพเดฏ เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เดซเดเดเตโเดทเตป เดคเดจเตเดจเต เดธเดฎเดฏ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดจเตเดฑเต เดเดฐเต เดตเดพเดเดพเดฒเดฎเดพเดฏ เดชเดพเดดเตโเดธเดฟเดเดเต เดจเดเดคเตเดคเตเดจเตเดจเต, เดชเดเตเดทเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเดเตเดฏเตเด เดเดพเดธเตโเดเต เดฒเตเดเตเดเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเดเตเดฏเตเด เดฐเตเดชเตเดเดฐเดฃเดคเตเดคเดฟเตฝ เดเดเตเดเตพเดเตเดเต เดเตเดเตเดคเตฝ เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเต:
/* ะฟะพะปัะทะพะฒะฐัะตะปั ะธ ะณััะฟะฟะฐ ะดะปั ะทะฐะฟััะบะฐ ะทะฐะดะฐัะธ ะฑะตััััั ะธะท passwd*/
e->uid = pw->pw_uid;
e->gid = pw->pw_gid;
/* ัะตะปะป ะฟะพ ัะผะพะปัะฐะฝะธั (/bin/sh), ะตัะปะธ ะฟะพะปัะทะพะฒะฐัะตะปั ะฝะต ัะบะฐะทะฐะป ะดััะณะพะต */
e->envp = env_copy(envp);
if (!env_get("SHELL", e->envp)) {
sprintf(envstr, "SHELL=%s", _PATH_BSHELL);
e->envp = env_set(e->envp, envstr);
}
/* ะดะพะผะฐัะฝัั ะดะธัะตะบัะพัะธั */
if (!env_get("HOME", e->envp)) {
sprintf(envstr, "HOME=%s", pw->pw_dir);
e->envp = env_set(e->envp, envstr);
}
/* ะฟััั ะดะปั ะฟะพะธัะบะฐ ะฟัะพะณัะฐะผะผ */
if (!env_get("PATH", e->envp)) {
sprintf(envstr, "PATH=%s", _PATH_DEFPATH);
e->envp = env_set(e->envp, envstr);
}
/* ะธะผั ะฟะพะปัะทะพะฒัะตะปั ะฒัะตะณะดะฐ ะธะท passwd */
sprintf(envstr, "%s=%s", "LOGNAME", pw->pw_name);
e->envp = env_set(e->envp, envstr);
เดชเตเดฐเดงเดพเดจ เดฒเตเดชเตเดชเต เดเตเดฒเดฟเดเดณเตเดเต เดจเดฟเดฒเดตเดฟเดฒเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต.
เดชเตเดฐเดงเดพเดจ เดฒเตเดชเตเดชเต
เดชเดคเดฟเดชเตเดชเต 7 Unix-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดฏเดฅเดพเตผเดคเตเดฅ เดเตเดฐเตเตบ เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเต: เดเดคเต เดเดฐเต เดฒเตเดชเตเดชเดฟเตฝ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดตเตเดฃเตเดเตเด เดตเดพเดฏเดฟเดเตเดเตเดเดฏเตเด เดจเดฟเดฒเดตเดฟเดฒเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดฑเต เดเตเดฎเดคเดฒเดเตพ เดเดฐเต เดธเตเดชเตเดชเตผ เดฏเตเดธเดฑเดพเดฏเดฟ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดเดฏเตเด เด เดเตเดคเตเดค เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดฑเต เดเดฐเดเดญเด เดตเดฐเต เดเดฑเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดคเต. เดชเดดเดฏ เดฎเตเดทเตเดจเตเดเดณเดฟเดฒเต เด เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเดฎเตเดชเดจเดคเตเดคเดฟเดจเต เดตเดณเดฐเตเดฏเดงเดฟเดเด เดตเดฟเดญเดตเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต.
SysV-เตฝ เดเดฐเต เดเดคเดฐ เดชเดคเดฟเดชเตเดชเต เดจเดฟเตผเดฆเตเดฆเตเดถเดฟเดเตเดเดชเตเดชเตเดเตเดเต, เด เดคเดฟเตฝ เดกเตเดฎเตบ เดเดฑเดเตเดเดพเตป เดชเตเดฏเดคเต เดเดพเดธเตโเดเต เดจเดฟเตผเดตเดเดฟเดเตเดเดชเตเดชเตเดเตเด เดเดฑเตเดฑเดตเตเด เด เดเตเดคเตเดค เดฎเดฟเดจเดฟเดฑเตเดฑเต เดตเดฐเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ 30 เดฎเดฟเดจเดฟเดฑเตเดฑเต เดตเดฐเต. เด เดฎเตเดกเดฟเตฝ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดตเตเดฃเตเดเตเด เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดพเดธเตโเดเตเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เดเตเดฑเดเตเดเต เดตเดฟเดญเดตเดเตเดเตพ เดฎเดพเดคเตเดฐเดฎเต เดเดชเดฏเตเดเดฟเดเตเดเดฟเดเตเดเตเดณเตเดณเต, เดเดจเตเดจเดพเตฝ เดเดพเดธเตโเดเตเดเตเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต เดตเตเดเดคเตเดคเดฟเตฝ เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เด เดธเตเดเดฐเตเดฏเดฎเดพเดฏเดฟ.
เดตเดฟเดเตเดธเดฟ เดเตเดฐเตเตบ เดเดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดเดฐเดฟเดเตเดเตฝ เดเดพเดธเตโเดเต เดฒเดฟเดธเตเดฑเตเดฑเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเตเดเต เดฎเดเดเตเดเดฟ, เดญเดพเดเตเดฏเดตเดถเดพเตฝ 80-เดเดณเตเดเต เด เดตเดธเดพเดจเดคเตเดคเตเดเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฏเตเดฃเดฟเดเตเดธเต เดฎเตเดทเตเดจเตเดเดณเดฟเตฝ เดเดพเดฐเตเดฏเดฎเดพเดฏ เดเตเดเตเดคเตฝ เดเดฑเดตเดฟเดเดเตเดเตพ เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเต:
/* ะฟะตัะฒะธัะฝะฐั ะทะฐะณััะทะบะฐ ะทะฐะดะฐั */
load_database(&database);
/* ะทะฐะฟัััะธัั ะทะฐะดะฐัะธ, ะฟะพััะฐะฒะปะตะฝะฝัะต ะบ ะฒัะฟะพะปะฝะตะฝะธั ะฟะพัะปะต ะฟะตัะตะทะฐะณััะทะบะธ ัะธััะตะผั */
run_reboot_jobs(&database);
/* ัะดะตะปะฐัั TargetTime ะฝะฐัะฐะปะพะผ ะฑะปะธะถะฐะนัะตะน ะผะธะฝััั */
cron_sync();
while (TRUE) {
/* ะฒัะฟะพะปะฝะธัั ะทะฐะดะฐัะธ, ะฟะพัะปะต ัะตะณะพ ัะฟะฐัั ะดะพ TargetTime ั ะฟะพะฟัะฐะฒะบะพะน ะฝะฐ ะฒัะตะผั, ะฟะพััะฐัะตะฝะฝะพะต ะฝะฐ ะทะฐะดะฐัะธ */
cron_sleep();
/* ะฟะตัะตัะธัะฐัั ะบะพะฝัะธะณััะฐัะธั */
load_database(&database);
/* ัะพะฑัะฐัั ะทะฐะดะฐัะธ ะดะปั ะดะฐะฝะฝะพะน ะผะธะฝััั */
cron_tick(&database);
/* ะฟะตัะตะฒะตััะธ TargetTime ะฝะฐ ะฝะฐัะฐะปะพ ัะปะตะดัััะตะน ะผะธะฝััั */
TargetTime += 60;
}
เดเตเดฐเตเตบ_เดธเตเดฒเตเดชเตเดชเต เดซเดเดเตโเดทเตป เดเดพเดธเตโเดเตเดเตเดเตพ เดเดเตโเดธเดฟเดเตเดฏเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเตฝ เดจเตเดฐเดฟเดเตเดเต เดเตพเดชเตเดชเตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, job_runqueue (เดเดพเดธเตโเดเตเดเตเดเตพ เดเดฃเตเดฃเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด), do_command (เดเดฐเต เดเดพเดธเตโเดเตเดเตเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเด) เดซเดเดเตโเดทเดจเตเดเตพ เดเดจเตเดจเดฟเดต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต. เด เดตเดธเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต.
เดเดฐเต เดเดพเดธเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
do_command เดซเดเดเตโเดทเตป เดจเดฒเตเดฒ เดฏเตเดฃเดฟเดเตเดธเต เดถเตเดฒเดฟเดฏเดฟเดฒเดพเดฃเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต, เด เดคเดพเดฏเดคเต, เดเดพเดธเตโเดเต เด เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฏเดฟ เดจเดฟเตผเดตเดนเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดคเต เดเดฐเต เดซเตเตผเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดฐเดเตเดทเดพเดเตผเดคเต เดชเตเดฐเดเตเดฐเดฟเดฏ เดเดพเดธเตโเดเตเดเตเดเตพ เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเต เดคเตเดเดฐเตเดจเตเดจเต, เดเตเตฝเดกเต เดชเตเดฐเตเดธเดธเตเดธเต เดเดพเดธเตโเดเต เดชเตเดฐเตเดธเดธเตเดธเต เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเตเดจเตเดจเต:
switch (fork()) {
case -1:
/*ะฝะต ัะผะพะณะปะธ ะฒัะฟะพะปะฝะธัั fork */
break;
case 0:
/* ะดะพัะตัะฝะธะน ะฟัะพัะตัั: ะฝะฐ ะฒััะบะธะน ัะปััะฐะน ะตัะต ัะฐะท ะฟัะพะฑัะตะผ ะทะฐั
ะฒะฐัะธัั ะณะปะฐะฒะฝัะน ะปะพะบ */
acquire_daemonlock(1);
/* ะฟะตัะตั
ะพะดะธะผ ะบ ัะพัะผะธัะพะฒะฐะฝะธั ะฟัะพัะตััะฐ ะทะฐะดะฐัะธ */
child_process(e, u);
/* ะฟะพ ะทะฐะฒะตััะตะฝะธั ะดะพัะตัะฝะธะน ะฟัะพัะตัั ะทะฐะบะฐะฝัะธะฒะฐะตั ัะฐะฑะพัั */
_exit(OK_EXIT);
break;
default:
/* ัะพะดะธัะตะปััะบะธะน ะฟัะพัะตัั ะฟัะพะดะพะปะถะฐะตั ัะฐะฑะพัั */
break;
}
เดเตเตฝเดกเต_เดชเตเดฐเตเดธเดธเตเดธเดฟเตฝ เดงเดพเดฐเดพเดณเด เดฒเตเดเดฟเดเต เดเดฃเตเดเต: เด เดคเต เดฎเตเดฏเดฟเดฒเดฟเดฒเตเดเตเดเต เด เดฏเดฏเตโเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเดเตเดเตโเดชเตเดเตเดเตเด เดชเดฟเดถเดเต เดธเตเดเตเดฐเตเดฎเตเดเดณเตเด เดเดเตเดเตเดเตเดจเตเดจเต (เดเดพเดธเตโเดเต เดเตเดฌเดฟเดณเดฟเตฝ MAILTO เดเตปเดตเดฏเตเตบเดฎเตเดจเตเดฑเต เดตเตเดฐเดฟเดฏเดฌเดฟเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ), เดเดเตเดตเดฟเตฝ, เดชเตเดฐเดงเดพเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเตเดฃเตเด เดเตเดฎเดคเดฒเดฏเตเดเต เดชเตเดฐเดเตเดฐเดฟเดฏ.
เดฎเดฑเตเดฑเตเดฐเต เดซเตเตผเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดเดพเดธเตโเดเต เดชเตเดฐเตเดธเดธเต เดฐเตเดชเดชเตเดชเตเดเตเดจเตเดจเดคเต:
switch (vfork()) {
case -1:
/* ะฟัะธ ะพัะธะฑะบะธ ััะฐะทั ะทะฐะฒะตััะฐะตััั ัะฐะฑะพัะฐ */
exit(ERROR_EXIT);
case 0:
/* ะฟัะพัะตัั-ะฒะฝัะบ ัะพัะผะธััะตั ะฝะพะฒัั ัะตััะธั, ัะตัะผะธะฝะฐะป ะธ ั.ะด.
*/
(void) setsid();
/*
* ะดะฐะปััะต ะผะฝะพะณะพัะปะพะฒะฝะฐั ะฝะฐัััะพะนะบะฐ ะฒัะฒะพะดะฐ ะฟัะพัะตััะฐ, ะพะฟัััะธะผ ะดะปั ะบัะฐัะบะพััะธ
*/
/* ัะผะตะฝะฐ ะดะธัะตะบัะพัะธะธ, ะฟะพะปัะทะพะฒะฐัะตะปั ะธ ะณััะฟะฟั ะฟะพะปัะทะพะฒะฐัะตะปั,
* ัะพ ะตััั ะฟัะพัะตัั ะฑะพะปััะต ะฝะต ััะฟะตัะฟะพะปัะทะพะฒะฐัะตะปััะบะธะน
*/
setgid(e->gid);
setuid(e->uid);
chdir(env_get("HOME", e->envp));
/* ะทะฐะฟััะบ ัะฐะผะพะน ะบะพะผะฐะฝะดั
*/
{
/* ะฟะตัะตะผะตะฝะฝะฐั ะพะบััะถะตะฝะธั SHELL ัะบะฐะทัะฒะฐะตั ะฝะฐ ะธะฝัะตัะฟัะตัะฐัะพั ะดะปั ะทะฐะฟััะบะฐ */
char *shell = env_get("SHELL", e->envp);
/* ะฟัะพัะตัั ะทะฐะฟััะบะฐะตััั ะฑะตะท ะฟะตัะตะดะฐัะธ ะพะบััะถะตะฝะธั ัะพะดะธัะตะปััะบะพะณะพ ะฟัะพัะตััะฐ,
* ัะพ ะตััั ะธะผะตะฝะฝะพ ัะฐะบ, ะบะฐะบ ะพะฟะธัะฐะฝะพ ะฒ ัะฐะฑะปะธัะต ะทะฐะดะฐั ะฟะพะปัะทะพะฒะฐัะตะปั */
execle(shell, shell, "-c", e->cmd, (char *)0, e->envp);
/* ะพัะธะฑะบะฐ โ ะธ ะฟัะพัะตัั ะฝะฐ ะทะฐะฟัััะธะปัั? ะทะฐะฒะตััะตะฝะธะต ัะฐะฑะพัั */
perror("execl");
_exit(ERROR_EXIT);
}
break;
default:
/* ัะฐะผ ะฟัะพัะตัั ะฟัะพะดะพะปะถะฐะตั ัะฐะฑะพัั: ะถะดะตั ะทะฐะฒะตััะตะฝะธั ัะฐะฑะพัั ะธ ะฒัะฒะพะดะฐ */
break;
}
เด เดเดฟเดธเตเดฅเดพเดจเดชเดฐเดฎเดพเดฏเดฟ เดเตเดฐเตเตบ เด เดคเดพเดฃเต. เดเดพเตป เดเดฟเดฒ เดฐเดธเดเดฐเดฎเดพเดฏ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เดเดดเดฟเดตเดพเดเตเดเดฟ, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดฟเดฆเตเดฐ เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเตเดณเตเดณ เด เดเตเดเตเดฃเตเดเดฟเดเดเต, เดชเดเตเดทเต เดเดพเตป เดชเตเดฐเดงเดพเดจ เดเดพเดฐเตเดฏเด เดฐเตเดชเดฐเตเด เดจเตฝเดเดฟ.
Afterword
เดฏเตเดฃเดฟเดเตเดธเต เดฒเตเดเดคเตเดคเต เดเดฑเตเดฑเดตเตเด เดฎเดฟเดเดเตเด เดชเดพเดฐเดฎเตเดชเดฐเตเดฏเดเตเดเดณเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเด, เด เดคเดฟเดถเดฏเดเดฐเดฎเดพเดเดตเดฟเดงเด เดฒเดณเดฟเดคเดตเตเด เดเดชเดฏเตเดเดชเตเดฐเดฆเดตเตเดฎเดพเดฏ เดชเตเดฐเตเดเตเดฐเดพเดฎเดพเดฃเต เดเตเดฐเตเตบ. เด เดตเตพ เด เดงเดฟเดเดฎเดพเดฏเดฟ เดเดจเตเดจเตเด เดเตเดฏเตเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดชเตเดชเตเตพ เดจเดฟเดฐเดตเดงเดฟ เดชเดคเดฟเดฑเตเดฑเดพเดฃเตเดเตเดเดณเดพเดฏเดฟ เด เดตเตพ เดคเดจเตเดฑเต เดเตเดฒเดฟ เด เดคเตเดญเตเดคเดเดฐเดฎเดพเดฏเดฟ เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฌเตเดฃเตเดเตเดตเดฟเดจเตเดชเตเดชเด เดตเดฐเตเดจเตเดจ เดชเดคเดฟเดชเตเดชเดฟเดจเดพเดฏเตเดณเตเดณ เดเตเดกเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป เดเดฐเต เดฎเดฃเดฟเดเตเดเตเดฑเดฟเตฝ เดเตเดเตเดคเตฝ เดเดเตเดคเตเดคเดฟเดฒเตเดฒ, เดเดจเดฟเดเตเดเต เดเดฐเตเดชเดพเดเต เดธเดจเตเดคเตเดทเด เดคเตเดจเตเดจเดฟ! เด เดคเต เดจเดฟเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเดเตเดเตเดตเตเดเตเดเดพเตป เดธเดพเดงเดฟเดเตเดเต เดเดจเตเดจเต เดเดพเตป เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต.
เดเดจเดฟเดเตเดเต เดจเดฟเดเตเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเต เด เดฑเดฟเดฏเดฟเดฒเตเดฒ, เดเดจเตเดจเดพเตฝ เดเดงเตเดจเดฟเด เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดเดเต, เด เดคเดฟเดธเดเตเดเตเตผเดฃเตเดฃเดตเตเด เด เดฎเดฟเดคเดฎเดพเดฏ เด เดฎเตเตผเดคเตเดคเดตเตเด เดเดณเตเดณ เดชเตเดฐเดตเดฃเดค, เดตเดณเดฐเตเดเตเดเดพเดฒเดฎเดพเดฏเดฟ เด เดคเตเดคเดฐเด เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเต เด เดจเตเดฏเตเดเตเดฏเดฎเดฒเตเดฒเตเดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดเดจเดฟเดเตเดเต เด เตฝเดชเตเดชเด เดธเดเตเดเดเดฎเตเดฃเตเดเต.
เดเตเดฐเตเดฃเดฟเดจเต เดจเดฟเดฐเดตเดงเดฟ เดเดงเตเดจเดฟเด เดเดคเดฐเดฎเดพเตผเดเดเตเดเดณเตเดฃเตเดเต: เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดธเดฟเดธเตเดฑเตเดฑเดเตเดเตพ เดเตผเดเดจเตเดธเตเดเตเดฏเตเดฏเดพเตป systemd-เดเตเดฎเดฑเตเดเตพ เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, เดเดพเดธเตโเดเตเดเตเดเตพ เดตเดดเดฟ เดตเดฟเดญเดต เดเดชเดญเตเดเด เดเตเดเตเดคเตฝ เดตเดดเดเตเดเดคเตเดคเตเดเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเดพเตป fcron เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดจเตเดจเดพเตฝ เดตเตเดฏเดเตเดคเดฟเดชเดฐเดฎเดพเดฏเดฟ, เดเดฑเตเดฑเดตเตเด เดฒเดณเดฟเดคเดฎเดพเดฏ เดเตเดฐเตเดฃเตเดเดพเดฌเต เดเดจเดฟเดเตเดเต เดเดชเตเดชเตเดดเตเด เดฎเดคเดฟเดฏเดพเดฏเดฟเดฐเตเดจเตเดจเต.
เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ, Unix-เดจเต เดธเตเดจเตเดนเดฟเดเตเดเตเด, เดฒเดณเดฟเดคเดฎเดพเดฏ เดชเตเดฐเตเดเตเดฐเดพเดฎเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด, เดจเดฟเดเตเดเดณเตเดเต เดชเตเดฒเดพเดฑเตเดฑเตโเดซเตเดฎเดฟเดจเดพเดฏเดฟ เดฎเดจ เดตเดพเดฏเดฟเดเตเดเดพเตป เดฎเดฑเดเตเดเดฐเตเดคเต!
เด เดตเดฒเดเดฌเด: www.habr.com