Как отключить службу upstart в Ubuntu 10.10?

27

В 10.10 выскочка используется вместо sysvinit.

Можно удалить ненужные сервисы upstart, которые вам не нужны, удалив соответствующий файл в /etc/init/blah.conf

Тем не менее, это кажется серьезным подходом. Как правильно настроить upstart, чтобы иметь возможность выборочно включать и выключать эти службы через командную строку?

В качестве практического примера, ответы, перечисленные здесь, чтобы отключить gdm с помощью rcconf, больше не работают: как я могу предотвратить запуск GDM при загрузке в Ubuntu?

Doug
источник
В северном направлении Видимо, в некоторых версиях Ubuntu есть пункт «сервисы» в меню графического рабочего стола, который позволяет это настраивать. Этого нет на моем. Я специально ищу решение командной строки.
Даг
Самый актуальный ответ на аскубунту . Читайте комментарии тоже!
Марчелло Нуччо
@ Марчелло Хм ... был ли смысл говорить это? «Самый последний ответ» - это все тот же ответ. удалите файл или удалите первые несколько строк этого вручную.
Дуг
самое новое решение echo manual >> /etc/init/<service>.override, и это упоминается только в комментариях (и в официальной документации). Я не нашел это легко, поэтому я упомянул об этом здесь.
Марчелло Нуччо

Ответы:

19

Если вы загляните в /etc/init.d, то заметите, что любые службы, настроенные с помощью upstart, являются просто символическими ссылками на / lib / init / upstart, поэтому удаление их из /etc/init.d просто удаляет ссылку, а не скрипт ,

Если вам нужен интерфейс для этого, вы можете установить chkconfigpackage ( 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 запускается, он вызывает файл конфигурации upstart /etc/init/gdm.conf

Затем этот файл ссылается на / etc / X11 / default-display-manager, чтобы увидеть, является ли он диспетчером отображения по умолчанию для системы - если он есть, то он запускается.

/ Etc / X11 / default-display-manager просто содержит:

/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завершите работу»

Majenko
источник
Это не сработало. Как и rcconf, chkconfig не перечисляет gdm как сервис, запускаемый на любом уровне выполнения. Тем не менее, перезагрузка, он загружается. chkconfig -s gdm off не помешал его запуску.
Даг
2
Здесь есть ссылка, также предполагающая, что chkconfig не является подходящим инструментом для использования: ubuntuforums.org/showthread.php?t=1559266
Дуг
Мне никогда не нравился запуск 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
n0mad
источник
1
Я не думаю, что это работает для выскочки услуг, хотя ..
Раджат Гупта
3

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

Иззи
источник
2

Я бы порекомендовал просто закомментировать все строки «start on» и «stop on». Это хорошо работало для меня, когда я запустил «initctl show-config», чтобы посмотреть, был ли отключен автоматический запуск моей программы, которую я хотел.

user35060
источник
1

Upstart - это управляемый событиями менеджер инициализации, а уровни выполнения не являются основным механизмом для определения момента запуска службы. Вместо этого сервисы запускаются, когда все их зависимости удовлетворены, что обеспечивает больший параллелизм во время загрузки, ускоряя процесс загрузки.

Используя Ubuntu 11.04, я смог отключить GDM, отредактировав файл /etc/init/gdm.conf и удалив все записи «start on». Вот мое предварительное редактирование:

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 имеет хорошую систему инициализации. Однако systemd удаляет любую другую систему инициализации с планеты.

Pawlo
источник