Перезапуск cron на debian
Нужен скрипт, выполняемый при каждой перезагрузке за +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 badges12 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 badgestry 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
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 .
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 как часть развертывания, и если длина файла не изменится, изменения не будут перезагружены.
Читайте также: