Назад | Перейти на главную страницу

Crontab против init.d, какой из них использовать для сценария запуска?

У меня есть сценарий, который запускает мою службу докеров и запускает мой контейнер на машине RHEL7.3 при перезагрузке системы. У меня работают два способа: 1) Добавить скрипт в rc.local 2) Добавить в crontab -e с путем к моему скрипту.

Какой мне лучше, так как оба работают?

Crontab предназначен для регулярного планирования заданий, а не для запуска служб при запуске системы. Делать это значит делать неправильно.

С помощью rc.local намного лучше, но еще лучше был бы обычный служебный файл systemd.

Сценарий rc.local имеет то преимущество, что он запускается в конце обычной последовательности запуска. Если вам нужно больше всего, сначала запустите rc.local. Недостатки rc.local в том, что он может быстро усложняться, если используется для слишком многих задач.

Хотя cron работает для этого, он по умолчанию может не делать то, что вы хотите, с ошибками. Его последовательность при запуске также может немного отличаться от системы к системе.

Более точный контроль над последовательностью и обработкой ошибок можно получить, написав собственные модули systemd или сценарии инициализации. Это то, что я считаю «правильным», и он имеет много преимуществ перед rc.local и cron.