27

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

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

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

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

6 ответов6

19

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

5

Я всегда находил инструмент sysv-rc-conf очень полезным, у него очень удобный и удобный интерфейс.

установить его так:

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

используйте это так:

sudo sysv-rc-conf
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», чтобы посмотреть, был ли отключен автоматический запуск моей программы, которую я хотел.

1

Вот решение:

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

@Matt Jenkins

Мне никогда не нравился запуск Ubuntu - и вообще Linux. Это всегда кажется таким грязным и грязным. Дайте мне команду FreeBSD в любой день. В любом случае - специфично для диспетчера отображения Ubuntu> у вас есть то, что показывает мое редактирование ...

Arch Linux имеет хорошую систему инициализации. Однако systemd удаляет любую другую систему инициализации с планеты.

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]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .