一周前,我更新了我妻子的计算机,几天后发现它crond
无法运行。运行crond -d
并没有多大用处,所以我运行了 strace crond -d`。出现此错误:
openat(AT_FDCWD, "/dev/null", O_RDWR) = 0
dup2(0, 0) = 0
dup2(0, 1) = 1
brk(NULL) = 0x1dab000
brk(0x1dcc000) = 0x1dcc000
getpid() = 1405
mkdir("/run/cron/cron.I23Z7s", 0700) = -1 ENOENT (No such file or directory)
dup(2) = 3
fcntl(3, F_GETFL) = 0x2 (flags O_RDWR)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
write(3, "mkdtemp: No such file or directo"..., 35mkdtemp: No such file or directory
顺便说一句,操作系统是 Slackware64-current。
额外信息:
我刚刚检测到我可以rc.crond
手动启动(以 root 身份),但重新启动时它不会启动...并且它工作正常,执行所有 cron 任务。
答案1
在 IRC 频道上讨论了此问题如何发生后,我注意到我计算机中的文件与其中一位参与者的文件##slackware
存在差异。/etc/rc.d/rc.M
旧版本的Slackware
似乎crond
直接管理启动,而新版本则通过调用 间接执行此任务rc.crond start
。rc.crond
做一些额外的工作。通常这应该是自动更新的,但是,由于某种原因,它没有(rc.M.new
没有替换原始文件)。