对于某些测试,我需要每分钟重新启动系统。我有一个基于 busybox 的系统,使用 opkg 安装了 cron。我使用 crontab 设置了一个 cron 作业,一切看起来都正常:
root@SL1000-1103DC:~# crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.1962 installed on Tue Jun 16 14:57:01 2015)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
* * * * * /sbin/reboot
root@SL1000-1103DC:~#
但系统启动后该命令从未运行?但是,如果我重新启动 cron,那么一切都会正常:
root@SL1000-1103DC:~# /etc/init.d/cron restart
Stopping Vixie-cron.
Starting Vixie-cron.
root@SL1000-1103DC:~# date
Tue Jun 16 14:58:18 EDT 2015
root@SL1000-1103DC:~#
Broadcast message from root (Tue Jun 16 14:59:00 2015):
The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
那么在启动时运行 cron 与从命令行运行有什么不同吗?也许有一些微妙的权限问题?所有这些都是在根级别完成的。嗯……
编辑:更多信息 - 看起来设备在奇怪的时间重新启动,好像 cron 对时间感到困惑?我就不管它了,它重启了好几次。上次我在 /var/log/messages 上看到了 tail,并且看到了来自 cron 发出命令的消息。所以现在的问题是——为什么 cron 对时间感到困惑?
答案1
听起来 cron 是在时间同步解决之前启动的,因此修复方法是在 cron 启动之前同步时间。