Cron 服务无法启动-无法创建重启检查文件

Cron 服务无法启动-无法创建重启检查文件

/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

查看ia位是否被设置。

跑步

chattr -ia /var/run/crond.reboot 

无论其中一个或两个都设置了。

相关内容