我在ELINOS4环境中的嵌入式设备中执行了一个cron实例。这个设备有问题,我认为与电池有关,这会改变系统日期。
对于嵌入式应用程序不是问题,因为应用程序重新同步日期。但是对于cron守护进程会影响其调度程序,导致程序在将来执行下一步。用标志执行cron我得到这个日志:
[3933] TargetTime=1359121500, sec-to-wait=60
...
[3933] spool dir mtime unch, no load needed.
[3933] tick(45,13,24,0,5) user [root:0:0:...] cmd="/etc/logrotate /etc/logrotate.conf"
[3933] TargetTime=1359121560, sec-to-wait=1130199663
[3933] sleeping for 1130199663 seconds
我试图手动更改日期,但是cron没有检测到这种变化(它正在睡觉https://stackoverflow.com/a/4141239)。
一个快速的黑客是修改cron的源代码,但是存在更好的解决方案吗?
提前致谢
答案 0 :(得分:0)
除了显而易见的“修复你的硬件”之外,立即建议是有一个守护进程来检查时间,如果它看到它跳回(或向前?)超过几秒钟,重启crond(和任何可能使用这种方法确定“下次醒来”的其他过程。