В 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)? Или может быть так, что один инструмент использует другой в фоновом режиме?
Ответы:
Что касается сервисов, которые определены как в SysV, так и в upstart, обычно, если вы перезапустите его через SysV, вы увидите что-то вроде этого:
Это означает, что для этих сервисов предпочтительнее Upstart, а реализация SysV - просто оболочка.
Кроме того, я думаю, что у вас есть смысл каталогов в обратном направлении. / etc / init - это конфигурация upstart, /etc/init.d - это совместимость с SysV, но это всего лишь символические ссылки на upstart для этих типов сервисов.
источник
Это во многом зависит от приложения и специалиста по упаковке.
Настоятельно предпочтительны сценарии Upstart, потому что они обрабатывают события (что, как правило, замечательно), но у многих приложений недостаточно хороших сценариев Upstart, или сопровождающий приложения решил придерживаться значений по умолчанию (приложения или Debian). ,
В любом случае, вы находитесь в положении, когда вам нужно адаптироваться.
.conf
, илиmanual
в файл. Это позволит вам вручную загрузить сервис.Для старых услуг:
Если у вас есть
/etc/init.d/
сценарий для чего - то и в/etc/init/
сценарии , и вы хотите , чтобы проверить , если версия init.d еще жив, вы можете проверить с:Если вы видите множество символических ссылок, они устанавливаются в старом SysV init.
источник
acpid
), я могу предположить, что она запускается SysV? Или, если я хочу отключить его, мне нужно сделать это, используяupdate-rc.d
трюк с переименованием?