Перезапуск cron после изменения файла crontab?


433

Нужно ли перезапускать cron после изменения файла crontable?


8
Не стоит пренебрегать ответом @ leonbloy, но я обнаружил, что реализация первого задания cron моего linux (с правильно отформатированным заданием в минуту) не работало до перезагрузки системы. sudo service cron restartне был проверен
геоэтерия

1
@geotheory yikes Надеюсь, мне не придется перезагружать мой prod-сервер каждый раз, когда я обновляю свой crontab (а я нет).
Jcollum

Ответы:


614

Нет.

Со страницы руководства cron :

Затем cron проверит время модификации всех crontabs и перезагрузит те, которые изменились. Таким образом, нет необходимости перезапускать cron при каждом изменении файла crontab.

Но если вы просто хотите убедиться, что все сделано,

sudo service cron reload

или

/etc/init.d/cron reload

10
При использовании папки cron.d символические ссылки crontabs не будут перезагружены. Как я могу принудительно перезагрузить?
CMCDragonkai

13
Ах, это так просто. Это сейчас sudo service cron restart.
CMCDragonkai

21
Лучший вариант - перезагрузить - он может быть инициирован пользователем без /etc/init.d/cron reload
полномочий

8
@CMCDragonkai Возможно, crondвместо cron.
Сис Тиммерман

33
Единственная проблема с этим ответом состоит в том, что это не всегда верно. Посмотрите комментарий геотеории под вопросом. Я тоже был немного об этом. Я внес изменение в файл crontab через sudo crontab -e, сохранил его Ctrl + Xи ушел, предполагая, cronчто его заберут (из-за того, что за этот ответ так высоко проголосовали). Через несколько дней мой клиент сообщает, что cron все еще работает в старом цикле. Так что - честно - если вы хотите быть в безопасности - просто перезапустите cronсистему или систему, и не тратьте время на потраченное время на тестирование, что вам придется сделать, несмотря на этот высоко оцененный ответ.
Дан Ниссенбаум

53

На CentOS с cPanel sudo /etc/init.d/crond reloadделает свое дело.

На CentOS7: sudo systemctl start crond.service


3
Спасибо за линию CentOs 7
Матье де Лоримье

1
// Чтобы перезагрузить crond, а не просто запустить его на все более ужасном systemd, запустите sudo systemctl reload crond.service.
Натан Басанезе

@NathanBasanese Перезагрузка cronв SystemD теперь считается черной магией: sudo systemctl reload crondне работает с Failed to reload cron.service: Job type reload is not applicable for unit cron.service.(Ubuntu 18.04). Читайте: Голова, мы все разбиты синдромом: "SystemD, может быть только один". Если перезагрузка не происходит автоматически за кулисами, вы обанкротились! Даже не думайте об исправлении, как вы это делали последние 3 (или больше) десятилетия! Читайте: Мир Windows наконец-то поглотил Debian: Если у вас под капотом что-то странное, что вы будете делать? Запустить снова!
Тино

Перезагрузка - это больше, чем просто перезагрузка. Разве нет чистой перезагрузки для Centos?
Ωmega

@Tino вы можете установить Cronie
Боб

27

У меня была похожая проблема на 16.04 VPS Digital Ocean. Если вы меняете crontabs, обязательно запустите

sudo service cron restart 

Это сработало для меня. Спасибо
Тиен Нгуен

Я вижу только reloadдостаточно. Нет необходимости restart. Спасибо. :)
Тян Нгуен

12

В зависимости от дистрибутива использование «перезагрузки cron» может ничего не делать. Чтобы вставить фрагмент из файла init.d / cron (debian squeeze):

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

Некоторые разработчики / сопровождающие полагались на его перезагрузку, но не делают этого, и в этом случае нет способа принудительной перезагрузки. Я создаю свои файлы crontab как часть развертывания, и если длина файла не изменится, изменения не будут перезагружены.



6

Попробуйте это: sudo cron reload у меня работает на Ubuntu 12.10


Не работает на моем Raspberry Pi 3+ с Ubuntu 18.04.2 LTS
Jan

3

Попробуйте это:, service crond restartследовательно, это crondне так cron.


crondнепризнанный сервис. Это работает cronдля меня. моя операционная система Ubuntu 18.04
Tien Nguyen

1

Существуют случаи, когда cron необходимо перезапустить, чтобы скрипт запуска работал. Нет ничего плохого в перезапуске cron.

перезапуск cron службы sudo


0

1) Если /var/spool/cron/crontabs/rootредактировать файл через SFTP-клиент - нужно service cron restart. Сервис перезагрузки не работает.

2) Если редактировать файл /var/spool/cron/crontabs/rootчерез консоль linux (nano, mc) - перезапуск НЕ нужен.

3) Если редактировать cron через crontab -e- перезапуск НЕ нужен.


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.