Перезапуск cron на debian

Обновлено: 02.07.2024

Нужен скрипт, выполняемый при каждой перезагрузке за +1 минуту. Я разместил запись, @reboot но это слишком рано для моего сценария. Как выполнить это когда-нибудь после перезагрузки?

Почему так рано ? Может быть, сценарий инициализации был бы более подходящим (с учетом зависимостей, например, этот сценарий должен быть настроен в первую очередь для настройки сети )? Мой сценарий должен быть выполнен после всех остальных, последнее короткими словами так как ваша работа должна выполняться после всего и поскольку концепция всего достаточно изменчива (добавление нового приложения autostart @ reboot не так уж и редко), я думаю, что вы должны поместить свою работу в сценарии rc в Таким образом, серверы вашей цели. Помещение вашей задачи в конец задач, указанных в /etc/rc.local, обычно является тем, что вы хотите, но в зависимости от конфигурации загрузки вашей системы, это может не выполняться всегда. Итак, проверьте это и посмотрите, работает ли он для вас.

Сценарий предназначен для запуска только через одну минуту после загрузки или может использоваться в другое время? В первом случае вы можете добавить sleep 60 в начало вашего скрипта, или во втором случае добавить его в файл crontab:

Как уже указывалось sr_, возможно, вы решаете эту проблему неправильно, и правильный сценарий init.d или rc.d был бы более надежным решением.

Или используйте параметр командной строки, чтобы настроить задержку (например, script -s X которая будет переводиться sleep X внутрь скрипта). Могу ли я применить это к файлу taskrunner в /etc/init.d/? @AndresAngel - прости, я не знаю. Я использую FreeBSD, который не имеет taskrunner , и, в этом отношении, /etc/init.d на моем rhel7 сон вообще не работает, он спит вечно и никогда не возвращается.

Например, если вам нужно выполнить что-то после перезагрузки, когда сеть станет доступной, вы можете написать системный модуль, который будет выполняться в нужное время (конечно, это будет работать только в системах с systemd).

Closed 8 months ago .

Do I have to restart cron after changing the crontable file?

705 1 1 gold badge 12 12 silver badges 28 28 bronze badges 7,089 4 4 gold badges 18 18 silver badges 36 36 bronze badges

12 Answers 12

. cron will then examine the modification time on all crontabs and reload those which have changed. Thus cron need not be restarted whenever a crontab file is modified

But if you just want to make sure its done anyway,

If using cron.d folder, symlinked crontabs will not be reloaded. How can I force a reload?

On CentOS with cPanel sudo /etc/init.d/crond reload does the trick.

On CentOS7: sudo systemctl start crond.service

38.2k 47 47 gold badges 168 168 silver badges 287 287 bronze badges // , To reload crond , rather than just start it on the increasingly horrible systemd, run sudo systemctl reload crond.service .

I had a similar issue on 16.04 VPS Digital Ocean. If you are changing crontabs, make sure to run

I see only reload is enough. No need restart . Thanks. :) In my case Rasperian with PI zero and changes in /var/spool/cron/crontabs/root I had to use restart Had the same problem as @mikep on an old openSUSE 10 machine. Only restart worked.

Depending on distribution, using "cron reload" might do nothing. To paste a snippet out of init.d/cron (debian squeeze):

Some developer/maintainer relied on it reloading, but doesn't, and in this case there's not a way to force reload. I'm generating my crontab files as part of a deploy, and unless somehow the length of the file changes, the changes are not reloaded.

185 1 1 gold badge 2 2 silver badges 8 8 bronze badges

try this one for centos 7 : service crond reload

Start cron service

To start the cron service, use: /etc/init.d/crond start

OR RHEL/CentOS 5.x/6.x user: service crond start

OR RHEL/Centos Linux 7.x user: systemctl start crond.service

Stop cron service

To stop the cron service, use: /etc/init.d/crond stop

OR RHEL/CentOS 5.x/6.x user: service crond stop

OR RHEL/Centos Linux 7.x user: systemctl stop crond.service

Restart cron service

To restart the cron service, use: /etc/init.d/crond restart

OR RHEL/CentOS 5.x/6.x user: service crond restart

OR RHEL/Centos Linux 7.x user: systemctl restart crond.service

Debian Start cron service

To start the cron service, use: /etc/init.d/cron start

OR sudo /etc/init.d/cron start

OR sudo service cron start

Debian Stop cron service

To stop the cron service, use: /etc/init.d/cron stop

OR sudo /etc/init.d/cron stop

OR sudo service cron stop

Debian Restart cron service

To restart the cron service, use: /etc/init.d/cron restart

OR sudo /etc/init.d/cron restart

OR sudo service cron restart


12k 9 9 gold badges 84 84 silver badges 119 119 bronze badges This does not appear to attempt to answer the question at the top of this page at all. Please review the help center and in particular How do I write a good answer?

Try this out: sudo cron reload It works for me on ubuntu 12.10

Try this: service crond restart , Hence it's crond not cron .


1,723 2 2 gold badges 22 22 silver badges 31 31 bronze badges crond unrecognized service. It work with cron for me. my OS is Ubuntu 18.04

There are instances wherein cron needs to be restarted in order for the start up script to work. There's nothing wrong in restarting the cron.

sudo service cron restart

1) If file /var/spool/cron/crontabs/root edit via SFTP client - need service cron restart . Reload service not work.

2) If edit file /var/spool/cron/crontabs/root via console linux (nano, mc) - restart NOT need.

3) If edit cron via crontab -e - restart NOT need.

Ubuntu 18.04 * Usage: /etc/init.d/cron


On CentOS (my version is 6.5) when editing crontab you must close the editor to reflect your changes in CRON.

After that command You can see that new entry appears in /var/log/cron

But only saving crontab editor after making some changes does not work. You must leave the editor to reflect changes in cron. After exiting new entry appears in the log:

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

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

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

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

При использовании папки cron.d символические ссылки crontabs не будут перезагружены. Как я могу принудительно перезагрузить? Ах, это так просто. Это сейчас sudo service cron restart . Лучший вариант - перезагрузить - он может быть инициирован пользователем без /etc/init.d/cron reload Единственная проблема с этим ответом состоит в том, что это не всегда верно. Посмотрите комментарий геотеории под вопросом. Я тоже был немного об этом. Я внес изменение в файл crontab через sudo crontab -e , сохранил его Ctrl + X и ушел, предполагая, cron что его заберут (из-за того, что за этот ответ так высоко проголосовали). Через несколько дней мой клиент сообщает, что cron все еще работает в старом цикле. Так что - честно - если вы хотите быть в безопасности - просто перезапустите cron систему или систему, и не тратьте время на потраченное время на тестирование, что вам придется сделать, несмотря на этот высоко оцененный ответ.

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

На CentOS7: sudo systemctl start crond.service

// Чтобы перезагрузить 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?

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

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

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

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

Читайте также: