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

433

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

bArmageddon
источник
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
leonbloy
источник
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

Sheldmandu
источник
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 как часть развертывания, и если длина файла не изменится, изменения не будут перезагружены.

Синица Петрик
источник
9

попробуйте этот для centos 7: перезапустите сервис crond

чутье
источник
6

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

Jono
источник
Не работает на моем 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

Mawty
источник
0

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

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

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

вебмастер
источник
0

Ubuntu 18.04 * Использование: /etc/init.d/cron {start | stop | status | restart | reload | force-reload}

Аква Хуан
источник