Як запускаються системні послуги в 12.10?


12

Одна річ, яка мене завжди бентежила в 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)? Або може бути так, що один інструмент використовує інший у фоновому режимі?


1
Подивіться на прийняту відповідь тут: askubuntu.com/questions/133807/… має кілька цікавих посилань.
Rinzwind

Відповіді:


2

Що стосується служб, визначених як у SysV, так і в запуску, зазвичай, якщо ви перезапустите його через 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 - це конфігурація на початку, /etc/init.d - це сумісність SysV, але це просто посилання на покращення для цього типу послуг.


6

Це багато в чому залежить від програми та її утримувача упаковки.

Існує сильна перевага для скриптів Upstart, оскільки вони обробляють події (що, як правило, чудово), але багато додатків не мають достатньо хороших сценаріїв Upstart або сервіс програми вирішив дотримуватися стандартних параметрів (програми чи Debian) .

Так чи інакше, ви в положенні, де вам доведеться адаптуватися.

  • Для початку:
    • Перейменуйте файл на щось, що не закінчується .conf, або
    • Додати manualу файл. Це дозволить вам вручну завантажити сервіс.
  • Для старих послуг:

    update-rc.d -f <service> remove
    

Якщо у вас є /etc/init.d/сценарій для чого - то і в /etc/init/сценарії , і ви хочете , щоб перевірити , якщо версія init.d ще живий, ви можете перевірити за:

ls -l /etc/rc?.d/*<service>

Якщо ви бачите набір символьних посилань, він встановлений у старому ініціалі SysV.


Отже, якщо у мене є служба, включена в SysV та Upstart (наприклад, acpid), я можу припустити, що її запускає SysV? Або якщо я хочу відключити його, мені потрібно це зробити за допомогою update-rc.dтрюку і перейменувати?
Салем
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.