У меня есть сценарий, который запускает мою службу докеров и запускает мой контейнер на машине RHEL7.3 при перезагрузке системы. У меня работают два способа: 1) Добавить скрипт в rc.local 2) Добавить в crontab -e с путем к моему скрипту.
Какой мне лучше, так как оба работают?
Crontab предназначен для регулярного планирования заданий, а не для запуска служб при запуске системы. Делать это значит делать неправильно.
С помощью rc.local
намного лучше, но еще лучше был бы обычный служебный файл systemd.
Сценарий rc.local имеет то преимущество, что он запускается в конце обычной последовательности запуска. Если вам нужно больше всего, сначала запустите rc.local. Недостатки rc.local в том, что он может быстро усложняться, если используется для слишком многих задач.
Хотя cron работает для этого, он по умолчанию может не делать то, что вы хотите, с ошибками. Его последовательность при запуске также может немного отличаться от системы к системе.
Более точный контроль над последовательностью и обработкой ошибок можно получить, написав собственные модули systemd или сценарии инициализации. Это то, что я считаю «правильным», и он имеет много преимуществ перед rc.local и cron.