更改crontab文件后重新启动cron?


432

更改crontable文件后是否必须重新启动cron?


8
不要无视@leonbloy的回答,但是我发现实现Linux的第一个cron作业(正确格式化的每分钟作业)直到重启系统后才起作用。sudo service cron restart没有经过测试。
geotheory 2014年

1
@geotheory yikes我确定希望我更新crontab时不必重新启动产品服务器(而且我也不需要)。
jcollum

Answers:


613

没有。

cron手册页中

... cron然后将检查所有crontab的修改时间,并重新加载已更改的crontab。因此,无论何时修改crontab文件,都无需重新启动cron

但是,如果您只是想确保已完成,

sudo service cron reload

要么

/etc/init.d/cron reload

10
如果使用cron.d文件夹,则不会重新加载符号链接的crontab。如何强制重新加载?
CMCDragonkai 2014年

13
就是这么简单。现在sudo service cron restart
CMCDragonkai 2014年

21
更好的选择是重新加载-可以由非root用户启动: /etc/init.d/cron reload
Honza 2014年

8
@CMCDragonkai可能crond代替cron
Cees Timmerman

32
这个答案的唯一问题是它并不总是正确的。请参阅问题下方的geotheory评论。我也被这个困扰。我通过通过对crontab文件进行了更改,通过sudo crontab -e保存了更改Ctrl + X,并假设cron可以将其删除(由于此答复被强烈支持)而消失了。然后,几天后,我的客户报告说cron仍在旧周期中运行。所以-坦白地说-如果您想安全-只需重启cron系统即可,不要浪费时间测试,尽管答案非常高,您还是必须这样做。
Dan Nissenbaum

52

在具有cPanel的CentOS上sudo /etc/init.d/crond reload可以解决问题。

在CentOS7上: sudo systemctl start crond.service


3
感谢CentOs 7系列
Mathieu de Lorimier

1
//,要重新加载crond而不是只是在日益可怕的systemd上启动,请运行sudo systemctl reload crond.service
弥敦道(Nathan Basanese)'18年

cron现在,在SystemD上@NathanBasanese重新加载被认为是不可思议的事情:(Ubuntu 18.04)sudo systemctl reload crond失败Failed to reload cron.service: Job type reload is not applicable for unit cron.service.。阅读:抬头,我们所有人都被综合症所困扰:“ SystemD,只能有一个”。如果没有在后台自动完成重新加载操作,那么您就破产了!甚至不要想像过去三(或更多)年间所做的那样去修复它!阅读:Windows的世界终于吞噬了Debian:如果幕后有什么奇怪的事情,您会怎么做?重新开始!
Tino

重新启动不只是重新加载。Centos没有可用的全新重载选项吗?
Ωmega

@Tino,您可以安装cronie
Bob的

27

我在16.04 VPS Digital Ocean上遇到了类似的问题。如果要更改crontab,请确保运行

sudo service cron restart 

它为我工作。谢谢
阮阮

我只看reload够了。没有必要restart。谢谢。:)
Tien Nguyen

12

根据分发情况,使用“ cron reload”可能不起作用。要将片段粘贴到init.d / cron中(debian压榨):

reload|force-reload) log_daemon_msg "Reloading configuration files for periodic command scheduler" "cron"
    # cron reloads automatically
    log_end_msg 0
    ;;

一些开发者/维护者依赖于它的重新加载,但并非如此,在这种情况下,没有办法强制重新加载。我将在部署过程中生成crontab文件,除非以某种方式更改了文件的长度,否则不会重新加载更改。


9

试试这个为centos 7:服务crond重新加载


6

试试看:sudo cron reload 它在ubuntu 12.10上对我有用


无法在具有Ubuntu 18.04.2 LTS的Raspberry Pi 3+上运行
1

3

试试这个:service crond restart,因此crond不是cron


crond无法识别的服务。它cron适合我。我的操作系统是Ubuntu 18.04
Tien Nguyen,

1

在某些情况下,需要重新启动cron才能使启动脚本起作用。重新启动cron并没有错。

sudo服务cron重新启动


0

1)如果/var/spool/cron/crontabs/root需要通过SFTP客户端编辑文件service cron restart。重新加载服务不起作用。

2)如果/var/spool/cron/crontabs/root通过控制台linux(nano,mc)编辑文件-无需重新启动。

3)如果通过cron编辑cron,则crontab -e无需重新启动。


0

Ubuntu 18.04 *用法:/etc/init.d/cron {start | stop | status | restart | reload | force-reload}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.