Como você desativa um serviço upstart no Ubuntu 10.10?

27

No 10.10, o upstart está sendo usado em vez do sysvinit.

É possível remover serviços iniciantes irritantes que você não deseja removendo o arquivo apropriado em /etc/init/blah.conf

No entanto, isso parece uma abordagem pesada. Como você configura corretamente o upstart para poder ativar e desativar esses serviços seletivamente através da linha de comando?

Como exemplo prático, as respostas listadas aqui para desativar o gdm usando o rcconf não funcionam mais: Como evito que o GDM seja executado em inicializar no Ubuntu?

    
por Doug 03.04.2011 / 15:06

6 respostas

19

Se você olhar em /etc/init.d você notará que quaisquer serviços configurados através do upstart são apenas links simbólicos para / lib / init / upstart, então removê-los do /etc/init.d apenas remove o link - não o roteiro.

Se você quiser uma interface para isso, pode instalar o chkconfig package ( apt-get install chkconfig ), que fornece uma ferramenta de linha de comando útil:

# 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 ....

Você pode ativar / desativar serviços para níveis de execução específicos (ou apenas ativá-los e desativá-los) com:

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

por exemplo:

# chkconfig -s gdm off

para desativá-lo completamente,

# chkconfig -s gdm on

para ativá-lo com o defaultsm ou

# chkconfig -s gdm 34

para ativá-lo apenas nos níveis de execução 3 e 4.

Você normalmente encontrará esse comando em sistemas baseados no RHEL (CentOS, Fedora, etc.).

UPDATE

Isto é específico para o Ubuntu e para o gdm / kdm / whatever.

Quando o gdm inicia, ele chama um arquivo de configuração upstart /etc/init/gdm.conf

Este arquivo, então, faz referência ao / etc / X11 / default-display-manager para ver se ele é o gerenciador de exibição padrão do sistema - se for, ele será iniciado.

O / etc / X11 / default-display-manager contém apenas:

/usr/sbin/gdm

Você pode substituir isso por outro gerenciador de exibição ou remover o arquivo completamente e ele não iniciará o gdm.

Uma linha do arquivo /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; }

Ele está dizendo "Se o arquivo / etc / X11 / default-display-manager não existir, ou se ele não contiver /usr/sbin/gdm , saia"

    
por 03.04.2011 / 15:26
5

Eu sempre achei a ferramenta sysv-rc-conf muito útil, ela tem um ótimo & interface fácil de usar.

instale assim:

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

use assim:

sudo sysv-rc-conf
    
por 27.03.2012 / 10:41
3

Basta dar uma olhada em man 5 init e você encontrará uma solução mais apropriada. Exemplo curto: digamos que tenhamos um serviço chamado "foobar", então haveria um arquivo chamado /etc/init/foobar.conf com sua configuração inicial. Agora você não quer remover esse arquivo, nem modificá-lo - mas também não quer que este serviço seja executado? Portanto, coloque um arquivo substituir ao lado dele: /etc/init/foobar.override , contendo (opcionalmente o cabeçalho com a descrição e) em vez das linhas start on / stop on , coloque uma linha com uma palavra: manual . Desta forma, você diz ao upstart para basicamente usar o foobar.conf , mas sobrescreve a definição de inicialização para iniciar apenas aquele serviço quando aplicado manualmente (via service foobar start em nosso exemplo).

    
por 30.06.2012 / 22:19
2

Minha recomendação seria simplesmente comentar todas as linhas "iniciar" e "interromper". Isso funcionou bem para mim quando executei "initctl show-config" para ver se a inicialização automática do meu programa que eu queria estava desativada.

    
por 18.06.2011 / 18:16
1

O Upstart é um gerenciador de inicialização orientado por eventos , e os níveis de execução não são o mecanismo principal para decidir quando um serviço é iniciado. Em vez disso, os serviços são iniciados quando todas as suas dependências são satisfeitas, o que permite maior paralelismo durante a inicialização, acelerando o processo de inicialização.

Usando o Ubuntu 11.04, consegui desativar o GDM editando o arquivo /etc/init/gdm.conf e removendo todas as entradas "start on". Aqui está minha pré-edição:

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]

Aqui está minha pós-edição:

start on
stop on runlevel [016]
    
por 25.05.2011 / 16:25
1

Aqui está uma solução:

link

@Matt Jenkins

I have never liked Ubuntu's startup - and Linux's in general. It has always seems so messy >and kludgy. Give me FreeBSD's rcng any day. Anyway - specific to Ubuntu's display manager >you have what my edit shows...

O Arch Linux tem um bom sistema de inicialização. No entanto, o systemd explode qualquer outro sistema init do planeta.

    
por 20.06.2011 / 14:02