Мы разрабатываем продукт, который зависит от сценария запуска. В нашем прототипе для этой цели используется rc.local, но мы заметили, что upstart и systemd - более современные подходы. Однако мы не обнаружили много конкретных доказательств того, почему предпочтительнее upstart или systemd, чем rc.local.
Почему предпочесть выскочку или systemd? Мы особенно озабочены безопасностью с точки зрения выбора метода.
Для начала, ваш продукт вообще не должен использовать rc.local
. rc.local
предназначен для системного администратора, чтобы поиграть; с ним они могут делать все, что хотят (до тех пор, пока он успешно завершается). Это в лучшем случае усложняет его редактирование.
Теперь, что вы должны использовать? Ответ прост.
Система использует одну систему инициализации в любой момент времени. Если вы предоставляете конфигурацию для всех из них, то та, которая наиболее совместима с работающей, используется автоматически.
/etc/rc*
, а также на заголовках специальных комментариев . И Upstart, и systemd имеют явные преимущества перед sysv init. Оба они являются скорее декларативными, чем обязательными, со встроенной поддержкой различных задач, связанных с управлением сервисами. Вы должны использовать самую современную систему инициализации, доступную в тех версиях, которые вы поддерживаете.
Systemd - это продвижение в Upstart, поэтому вопрос о том, что лучше или безопаснее, на мой взгляд, не совсем оправдывает себя. Лучше спросить себя: « хочу ли я делать вещи по-старому », если это так, Upstart, иначе Systemd.
Проверьте различия здесь , лично мне нравится двигаться вперед, так как это намерение Systemd. Оба имеют превосходную безопасность, и, поскольку вы пришли из Windows, пожалуйста, прочитайте историю Linux Security , тогда, я думаю, вы примете лучшее решение.
Опять же, rc.local
добро пожаловать в Linux старой школы, мы верим в будущее, так что делайте это сейчас, а не в прошлом.