我在cron手册页上读到:
Cron在
/var/spool/cron中搜索以/etc/passwd中帐户命名的crontab文件;找到的crontab被加载到内存中。Cron还搜索/etc/anacrontab和/etc/cron.d目录中的任何文件,这些文件具有不同的格式(参见crontab(5))。Cron检查所有存储的crontab,并检查每个作业是否需要在当前分钟内运行。
然后上面写着:
/etc/crontab系统crontab现在,默认情况下文件是空的。最初,它通常用于日常、每周、每月的工作。默认情况下,这些作业现在通过anacron运行,anacron读取/etc/anacrontab配置文件。有关更多详细信息,请参阅anacrontab(5)。
好的,对我来说很清楚,如果/etc/crontab是空的,会发生什么。
我的问题是:如果/etc/crontab存在,它什么时候读?
注意:手册页来自CentOS 8。
发布于 2020-01-21 16:19:33
答案取决于您感兴趣的cron的确切变体。
在Debian中,cron守护进程是记录为重装/etc/crontab必要时:
与
/etc/crontab一样,对/etc/cron.d目录中的文件进行了更改监视。
实际上,主循环重新加载所有cron每次迭代时的数据库 (只有在文件更改时才会加载)。
在Fedora和衍生产品(包括CentOS)、cron 行为类似中,如果可以从inotify获得更多的帮助。
发布于 2020-01-22 08:41:38
如果您有一个cron实现来记录一个crontab文件,那么您必须使用一个历史性的UNIX变体。30多年来,cron实用程序的唯一有效接口是通过crontab命令。
这就是为什么POSIX根本不记录cron实用程序的原因,因为它是一个特定于实现的细节。
因此,请确保行为正确,并且只使用crontab -l列出crontab或使用crontab -e编辑crontab。
如果编辑crontab,则crontab命令将crontab文件存储在系统特定位置,并通知cron实用程序crontab已更改,需要重新读取。
https://unix.stackexchange.com/questions/563240
复制相似问题