В Ubuntu меня всегда смущало то, как запускаются системные службы. Я знаю, что Ubuntu использует Upstart и поддерживает SysV, но какой из них используется для запуска служб? Это имеет значение, когда вы хотите запустить сервис вручную.
Например, в моей системе у меня есть файлы для следующих служб в /etc/init.d/<service>
(SysV) и /etc/init/<service>.conf
(Upstart):
acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin
Так что если я хочу отключить выполнение MySQL на при запуске, я должен использовать способ Upstart или SysV, чтобы отключить его? Кроме того, как я могу сказать, какой из них действительно используется для запуска универсального сервиса?
Реальное сомнение здесь не в том, как отключить / включить сервисы с помощью SysV / Upstart. Что меня действительно смущает, так это то, что некоторые службы, кажется, определены (и включены) в SysV и Upstart одновременно. Есть ли какой-то приоритет между ними (например, если mysql
включен при запуске его с помощью SysV)? Или может быть так, что один инструмент использует другой в фоновом режиме?
Это действительно в основном зависит от приложения и его упаковочного специалиста по обслуживанию.
Существует решительное предпочтение Новомодным сценариям, потому что они обрабатывают события (который обычно является большой вещью), но много приложений не имеет достаточно хорошие Новомодные сценарии в наличии, или специалист по обслуживанию приложения принял решение придерживаться значений по умолчанию (приложение или Debian).
Так или иначе Вы находитесь в положении, где необходимо адаптироваться.
.conf
, илиmanual
в файл. Это позволит Вам вручную загружать сервис.Для более старых сервисов:
update-rc.d -f <service> remove
Если Вы имеете /etc/init.d/
сценарий для чего-то и /etc/init/
сценарий и Вы хотите проверить, ли init.d версия, все еще живут, можно свериться:
ls -l /etc/rc?.d/*<service>
Если Вы видите загрузку символьных ссылок, она установлена в старом SysV init.
Что касается сервисов, которые определены как в SysV, так и в upstart, то, как правило, если вы перезапустите его через SysV, вы увидите нечто вроде этого: эти сервисы, а реализация SysV - просто оболочка.
Кроме того, я думаю, что у вас есть смысл каталогов в обратном направлении. / etc / init - это конфигурация upstart, /etc/init.d - это совместимость с SysV, но это всего лишь символические ссылки на upstart для таких сервисов.