/var/log/cron
当我重新启动系统或手动启动 cron(使用/etc/init.d/cron start
命令)时,cron 日志显示以下内容:
Jul 2 10:17:31 monserver /usr/sbin/cron[17386]: (CRON) INFO (pidfile fd = 3)
Jul 2 10:17:31 monserver /usr/sbin/cron[17387]: (CRON) STARTUP (fork ok)
Jul 2 10:17:31 monserver /usr/sbin/cron[17387]: (CRON) DEATH (Can't create reboot check file)
确认 cron 确实没有运行ps aux | grep cron
该服务器最近与其他应用程序(例如 nagios)存在权限问题。如果这里的情况如此,我不会感到惊讶,但我无法找到此“重启检查文件”的位置。这是一个较旧的 Debian 系统(版本 5.0.2)。
如果需要更多信息,请告诉我
答案1
顺便说一下,这是 Debian 特定代码被触发。正如 karmawhore 已经指出的那样,你确实有权限问题/var/运行,防止/var/运行/crond.reboot被创建。
#ifdef DEBIAN
#define REBOOT_FILE "/var/run/crond.reboot"
/* Run on actual reboot, rather than cron restart */
if (access(REBOOT_FILE, F_OK) == 0) {
/* File exists, return */
log_it("CRON", getpid(),"INFO",
"Skipping @reboot jobs -- not system startup");
return;
}
/* Create the file */
if ((rbfd = creat(REBOOT_FILE, S_IRUSR&S_IWUSR)) < 0) {
/* Bad news, bail out */
log_it("CRON",getpid(),"DEATH","Can't create reboot check file");
exit(0);
} else {
close(rbfd);
log_it("CRON", getpid(),"INFO", "Running @reboot jobs");
}
Debug(DMISC, ("[%d], Debian running reboot jobs\n",getpid()));
#endif
答案2
手动创建一个空的 /var/run/crond.reboot 文件并重新启动 cron(使用 /etc/init.d/cron start)后,Cron 似乎正在运行。很奇怪。可能只是暂时的解决办法。重新启动后它仍然有效,但系统重启后是否有效还有待观察(改天再说)。感谢 karmawhore 和 andol 提供的急需的建议。
答案3
听起来好像/var/run
权限不正确,755
这是基本 Debian 安装程序设置的/var/run
或者说,或许/var/run/crond.reboot
已经成为了不可改变的事实。
跑步
lsattr /var/run/crond.reboot
查看i
或a
位是否被设置。
跑步
chattr -ia /var/run/crond.reboot
无论其中一个或两个都设置了。