Вопрос или проблема
В systemD нам нужно выполнить эту команду для автозапуска приложения при старте системы: sudo systemctl enable <service-name>
. Какова будет эквивалентная команда для sysvinit, поскольку chkconfig больше не поддерживается? Я не смог найти ничего подобного.
Согласно этому ответу на SO, вам следует использовать не chkconfig
, а update-rc.d
:
update-rc.d <service> defaults
update-rc.d <service> start 20 3 4 5
update-rc.d -f <service> remove
.
Ответ или решение
Вопрос о том, как автоматизировать запуск сервисов в System V (SysVinit) в условиях, когда команда chkconfig
больше не поддерживается, требует внимательного подхода. В отличие от систем, использующих systemd, таких как systemctl enable <имя-сервиса>
, в системе SysVinit используется набор других инструментов для управления службами.
Для настройки автозапуска сервиса в системах, использующих SysVinit, вы можете воспользоваться командой update-rc.d
. Данная команда позволяет добавлять, удалять и настраивать службы, которые будут запускаться автоматически при загрузке системы.
Вот структура команд, которые вы можете использовать:
-
Добавление службы для автозапуска:
sudo update-rc.d <имя-сервиса> defaults
Эта команда добавит ваш сервис в стандартные уровни запуска. Она создаст необходимые символические ссылки в директориях
/etc/rc*.d/
, которые позволяет системе знать, когда запускать сервис. -
Определение порядка запуска:
Если необходимо задать специальный порядок запуска и уровни, вы можете использовать следующую команду:sudo update-rc.d <имя-сервиса> start 20 3 4 5
В данном случае
start 20 3 4 5
устанавливает приоритет (20) для запуска сервиса на уровне запуска 3, 4 и 5. Параметр20
определяет порядок, в котором сервис будет запускаться относительно других сервисов с другими приоритетами. -
Удаление службы:
Если вам нужно удалить службу из автозапуска, можно использовать команду:sudo update-rc.d -f <имя-сервиса> remove
Это приведет к удалению всех символических ссылок, связанных с указанной службой, из уровней запуска.
Заключение
В результате, вместо того, чтобы полагаться на устаревшую команду chkconfig
, использование update-rc.d
предоставляет более современный и гибкий способ управления автозапуском служб в SysVinit. Эта команда не только позволяет переопределять автоматическую загрузку, но и легко управляет приоритетами запуска, что важно для обеспечения правильной последовательности запуска служб в вашей системе.
Этот подход достаточно универсален и поможет вам в управлении службами в средах, использующих System V. Не забывайте проверять логи системы после настройки служб, чтобы удостовериться, что все работает корректно при загрузке.