Необходим ли перезапуск cron или crond после каждого добавления или изменения нового расписания?

29

Когда я планирую работу, некоторые, кажется, применяются немедленно, а другие после перезагрузки. Так что рекомендуется добавить restart cron( crond) после добавления нового задания cron? Как сделать это правильно (особенно в системе Debian), и должно ли это быть сделано sudo(как sudo service cron restart) даже для обычных пользователей?

Я пытался:

/etc/init.d/cron restart

который, кажется, не работает (ни делает /etc/init.d/cron stopили service cron stop) и завершается с кодом возврата 1.

Вот часть вывода сообщения:

Поскольку скрипт, который вы пытаетесь вызвать, был преобразован в задание Upstart, вы также можете использовать утилиту stop (8), например, stop cron stop: Отклонено отправленное сообщение, 1 соответствует правилам; type = "method_call", sender = ": 1.91" (uid = 1000 pid = 3647 comm = "stop cron") interface = "com.ubuntu.Upstart0_6.Job" member = "Stop" error name = "(unset)" required_reply = "0" destination = "com.ubuntu.Upstart" (uid = 0 pid = 1 comm = "/ sbin / init")

(что это значит?)

точный
источник

Ответы:

18

Нет, вам не нужно перезапускать cron, он заметит изменения в ваших файлах crontab (либо /etc/crontabв файле crontab пользователя).

Наверху вашего / etc / crontab у вас, вероятно, есть (если у вас есть реализация Vixie cronтого IIRC, который используется в Debian):

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

Причина, по которой вы можете не увидеть внесенные конкретные изменения, заключается в том, что вы добавляете что-то, например, /etc/cron.dailyи ежедневный запуск уже произошел.

Сообщение, которое вы получаете, потому что вы используете старый способ перезапуска cron в вашей системе. Рекомендуемый способ (но не обязательный, если вы просто редактируете файлы cron):

 restart cron

Вы, конечно, должны перезагрузиться, чтобы увидеть результаты работы @reboot cron

Timo
источник
это была не перезагрузка, а каждые n минут работы cron ... и перезапуск, похоже, работает с sudo старым и новым способами ... но не для обычного пользователя ...
точно
Как вы редактируете crontab? Как пользователь с crontab -e?
Тимо
да .. crontab -eэто то, что я использую ..
точное
У вас есть Викси Крон (посмотрите man cron-> Имя)
Тимо
1
Похоже, что простого сохранения изменений недостаточно, и запланированные задания применяются только после nanoзакрытия текстового редактора (я использую )! ..и возможно , что вызвало путаницу ...
точный
3

Перезагрузка может не потребоваться. Как я уже говорил в моих комментариях текстового редактора , который вы использовали (тот , который назначен для редактирования хрон-заданий) , чтобы редактировать задание должны быть закрыта ; просто сохранить содержимое недостаточно . (Это то, что я испытал. Редактирование задач с помощью + nanoи сохранение с Ctrl+ Oс открытым файлом не применяет изменения сразу, но только после того, как редактор закрывается с Ctrl+ X.)

И, как упоминалось в этом ответе (от terdon ), демон cron будет проверять каждую минуту, чтобы увидеть, нужно ли запускать какое-либо задание и запускать те, которые он должен.

точный
источник