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


432

Чи потрібно перезавантажувати cron після зміни файлу, який може бути crontable?


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

1
@geotheory поступається Я впевнений, що мені не доведеться перезапускати сервер prod будь-коли, коли я оновлюю свій crontab (а я ні).
jcollum

Відповіді:


613

Ні.

З сторінки man 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
Кращий варіант - це повторне завантаження - його може ініціювати користувач, який не має права root:/etc/init.d/cron reload
Honza

8
Можливо, можливо, crondзамість @CMCDragonkai cron.
Cees Timmerman

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

52

На CentOS з cPanel sudo /etc/init.d/crond reloadробить свою справу.

У CentOS7: sudo systemctl start crond.service


3
Дякую за лінію CentOs 7
Матьє де Лоріньє

1
//, Щоб перезавантажити crond, а не просто запустити його на все жахливішій системі, запустіть 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
Bob

27

У мене був аналогічний випуск 16.04 VPS Digital Ocean. Якщо ви міняєте ліцензії, переконайтеся, що ви працюєте

sudo service cron restart 

Це працювало для мене. Спасибі
Тянь Нгуен

Я бачу лише reloadдостатньо. Не потрібно restart. Дякую. :)
Тянь Нгуен

12

Залежно від розподілу, використання "cron reload" може нічого не робити. Щоб вставити фрагмент із init.d / cron (дебійський стиск):

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 служби 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- перезапускати НЕ потрібно.


0

Ubuntu 18.04 * Використання: /etc/init.d/cron {start | stop | статус | перезапуск | reload | force-reload}

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.