Как системные сервисы запускаются в 12.10?
В Ubuntu меня всегда смущало то, как запускаются системные службы. Я знаю, что Ubuntu использует Upstart и поддерживает SysV, но какой из них используется для запуска служб? Это важно, когда вы хотите запустить сервис вручную.
Например, в моей системе у меня есть файлы для следующих служб либо в /etc/init.d/<service>
(SysV) и /etc/init/<service>.conf
(Выскочка):
acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin
Поэтому, если я хочу отключить выполнение MySQL при запуске, я должен использовать способ Upstart или SysV, чтобы отключить его? Кроме того, как я могу сказать, какой из них действительно используется для запуска универсального сервиса?
редактировать
Реальное сомнение здесь не в том, как отключить / включить сервисы с помощью SysV/Upstart. Что меня действительно смущает, так это то, что некоторые службы, кажется, определены (и включены) в SysV и Upstart одновременно. Есть ли какой-либо приоритет между ними (например, если mysql
включен в обоих запустить его с помощью SysV)? Или может быть так, что один инструмент использует другой в фоновом режиме?
2 ответа
Что касается сервисов, которые определены как в SysV, так и в upstart, то, как правило, если вы перезапустите его через SysV, вы увидите что-то вроде этого:
al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al:
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846
Это означает, что для этих сервисов предпочтительнее Upstart, а реализация SysV - просто оболочка.
Кроме того, я думаю, что у вас есть смысл каталогов в обратном направлении. /etc/init - это конфигурация upstart, /etc/init.d - это совместимость с SysV, но это всего лишь символические ссылки на upstart для этих типов сервисов.
Это во многом зависит от приложения и специалиста по упаковке.
Настоятельно предпочтительны сценарии Upstart, потому что они обрабатывают события (что, как правило, замечательно), но во многих приложениях недостаточно хороших сценариев Upstart, или сопровождающий приложения решил придерживаться значений по умолчанию (приложения или Debian).,
В любом случае, вы находитесь в положении, когда вам нужно адаптироваться.
- Для Upstart:
- Переименуйте файл во что-то, что не заканчивается
.conf
, или же - добавлять
manual
в файл. Это позволит вам вручную загрузить сервис.
- Переименуйте файл во что-то, что не заканчивается
Для старых услуг:
update-rc.d -f <service> remove
Если у вас есть /etc/init.d/
сценарий для чего-то и /etc/init/
скрипт, и вы хотите проверить, если версия init.d еще жива, вы можете проверить с помощью:
ls -l /etc/rc?.d/*<service>
Если вы видите загрузку символических ссылок, она устанавливается в старом инициализации SysV.