Як відключити послугу для запуску в ubuntu 10.10?


27

У 10.10 напад використовується замість сисвініту.

Можна видалити набридливі початкові служби, які ви не хочете, видаливши відповідний файл у /etc/init/blah.conf

Однак це здається важким підходом. Як ви правильно налаштувати запуску, щоб мати можливість вибірково включати та вимикати ці служби за допомогою командного рядка?

Як практичний приклад, наведені тут відповіді на вимкнення gdm за допомогою rcconf більше не спрацьовують: Як запобігти запуску GDM під час завантаження на Ubuntu?


Nb. Мабуть, деякі версії ubuntu містять у меню графічного робочого столу пункт "служби", що дозволяє це налаштувати. Цього немає на моєму. Я спеціально шукаю рішення командного рядка.
Дуг

Найновіша відповідь - на askubuntu . Читайте також коментарі!
Marcello Nuccio


@Marcello Гм ... чи було сенс сказати це? "Найновіша відповідь" - це все та сама відповідь. видаліть файл або видаліть перші кілька рядків із нього вручну.
Дуг

новітнє рішення є echo manual >> /etc/init/<service>.override, і це згадується лише в коментарях (і в офіційній документації). Я не знайшов його легко, тому я тут згадував.
Marcello Nuccio

Відповіді:


19

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

Якщо ви хочете інтерфейс до цього, ви можете встановити chkconfigпакунок ( apt-get install chkconfig), який дає корисний інструмент командного рядка:

# chkconfig --list
acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
alsa-mixer-save           0:off  1:off  2:off  3:off  4:off  5:off  6:off
anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off
apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on 
apport                    0:off  1:off  2:off  3:off  4:off  5:off  6:off
atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off
.... and so on ....

Ви можете ввімкнути / вимкнути служби для конкретних рівнів запуску (або просто включити та вимкнути їх) за допомогою:

# chkconfig -s <service> <state/runlevels>

наприклад:

# chkconfig -s gdm off

щоб повністю вимкнути його,

# chkconfig -s gdm on

увімкнути його за замовчуванням або

# chkconfig -s gdm 34

щоб увімкнути його лише для рівнів 3 та 4 запуску.

Зазвичай ви знайдете цю команду в системах на базі RHEL (CentOS, Fedora тощо).

ОНОВЛЕННЯ

Це характерно для Ubuntu та gdm / kdm / що завгодно.

Коли запускається gdm, він викликає конфігураційний файл на початку /etc/init/gdm.conf

Потім у цьому файлі посилаються / etc / X11 / default-manager-manager, щоб побачити, чи це менеджер дисплеїв за замовчуванням для системи - якщо він тоді запускається.

Менеджер / etc / X11 / default-display просто містить:

/usr/sbin/gdm

Ви можете замінити це іншим диспетчером дисплеїв або повністю видалити файл, і він не запустить gdm.

Рядок із файлу /etc/init/gdm.conf:

[ ! -f /etc/X11/default-display-manager -o "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm" ] || { stop; exit 0; }

Він говорить "Якщо файл / etc / X11 / default-display-manager не існує, або якщо він не містить, /usr/sbin/gdmтоді вийдіть"


Це не спрацювало. Як і rcconf, chkconfig не перелічує gdm як послугу, яку потрібно запустити на будь-якому рівні запуску. Але, перезапуск, він завантажується. chkconfig -s gdm off не завадило йому запуститися.
Даг

2
Тут є посилання, яке також дозволяє припустити, що chkconfig не є відповідним інструментом для використання: ubuntuforums.org/showthread.php?t=1559266
Doug

Я ніколи не любив запуск Ubuntu - і Linux взагалі. Це завжди здається таким безладним і химерним. Дайте мені реквізит FreeBSD будь-якого дня. У будь-якому випадку - специфічно для диспетчера дисплеїв Ubuntu ви маєте те, що показує моя редакція ...
Majenko

+1 для правильного після редагування з деталями для початку.
Дуг

5

Я завжди вважав, що інструмент sysv-rc-conf дуже корисний, він має дуже приємний та простий у користуванні інтерфейс.

встановіть його так:

sudo apt-get update
sudo apt-get install sysv-rc-conf

використовуйте його так:

sudo sysv-rc-conf

1
Я не думаю, що це працює для швидких служб ..
Раджат Гупта,

3

Просто погляньте, man 5 initі ви знайдете більш відповідне рішення. Короткий приклад. Скажімо, у нас є сервіс під назвою "foobar", тому буде файл, який називається /etc/init/foobar.confз його конфігурацією на початку. Тепер ви не хочете видаляти цей файл і не змінювати його, але ви також не хочете запускати цю послугу? Так розмістити перевизначення файл поруч з ним: /etc/init/foobar.override, що містить (необов'язково заголовком з описом і) замість цього start on/ stop onрядки , які ви помістіть рядок з одним словом: manual. Таким чином, ви підказуєте foobar.confпочатковому користувачу в основному використовувати , але переосмислювати визначення запуску, щоб запустити цю службу лише при ручному застосуванні (через service foobar startнаш приклад).


2

Моя рекомендація полягала б у тому, щоб просто прокоментувати всі рядки "старт" та "зупинка на". Це добре спрацювало для мене, коли я запустив "initctl show-config", щоб побачити, чи не було вимкнено автоматичний запуск моєї програми, яку я хотів.


1

Upstart - керований подіями менеджер init, і рівні запуску не є основним механізмом прийняття рішення щодо запуску послуги. Натомість послуги запускаються тоді, коли всі їхні залежності задовольняються, що дозволяє зробити більший паралелізм під час завантаження, прискоривши процес завантаження.

Використовуючи Ubuntu 11.04, мені вдалося відключити GDM, відредагувавши файл /etc/init/gdm.conf та видаливши всі записи "запустити". Ось моя попередня редакція:

start on (filesystem
          and started dbus
          and (drm-device-added card0 PRIMARY_DEVICE_FOR_DISPLAY=1
               or stopped udev-fallback-graphics))
stop on runlevel [016]

Ось моя після редагування:

start on
stop on runlevel [016]

1
Правильно; однак це в принципі не краще, ніж просто переміщення / видалення файлу etc / init / gdm.conf; Я (досі) вражений, що редагування конфігураційного файлу вручну здається єдиним способом це зробити.
Даг

1

Ось таке рішення:

http://ubuntuforums.org/showpost.php?p=9416839&postcount=3

@Matt Jenkins

Я ніколи не любив запуск Ubuntu - і Linux взагалі. Це завжди здається таким безладним> і химерним. Дайте мені реквізит FreeBSD будь-якого дня. У будь-якому випадку - специфічно для диспетчера дисплеїв Ubuntu> у вас є те, що показує моя редакція ...

Arch Linux має гарну систему init. Однак системний вибухає будь-яку іншу систему init з планети.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.