Como você desabilita um serviço inicial no ubuntu 10.10?

27

Na versão 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 o upstart corretamente para poder ativar e desativar seletivamente esses serviços através da linha de comando?

Como um exemplo prático, as respostas listadas aqui para desativar o gdm usando o rcconf não funcionam mais: Como impedir que o GDM seja executado na inicialização no Ubuntu?

Doug
fonte
Nb. Aparentemente, algumas versões do ubuntu têm um item de 'serviços' no menu da área de trabalho gráfica que permite que isso seja configurado. Isso não está presente no meu. Estou procurando especificamente uma solução de linha de comando.
Doug
A resposta mais atualizada está no askubuntu . Leia os comentários também!
Marcello Nuccio
2
Agora isso está documentado no parágrafo Desativando o Início Automático de um Trabalho .
Marcello Nuccio
@ Marcello Hm ... houve um ponto em dizer isso? A 'resposta mais atualizada' ainda é a mesma resposta. remova o arquivo ou exclua as primeiras linhas manualmente.
Doug
a solução mais recente é echo manual >> /etc/init/<service>.overridee isso é mencionado apenas nos comentários (e na documentação oficial). Não o encontrei facilmente, por isso mencionei aqui.
Marcello Nuccio

Respostas:

19

Se você procurar em /etc/init.d, notará que quaisquer serviços configurados por meio do upstart são apenas links simbólicos para / lib / init / upstart, portanto, removê-los do /etc/init.d apenas remove o link - e não o script .

Se você deseja uma interface para isso, pode instalar o chkconfigpacote ( 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

desligá-lo completamente,

# chkconfig -s gdm on

para ativá-lo com o padrão ou

# chkconfig -s gdm 34

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

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

ATUALIZAR

Isso é específico para o Ubuntu e gdm / kdm / qualquer que seja.

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

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

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

/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; }

It's saying "If the file /etc/X11/default-display-manager doesn't exist, or if it doesn't contain /usr/sbin/gdm then exit"

Majenko
fonte
Isso não funcionou. Assim como o rcconf, o chkconfig não lista o gdm como um serviço a ser iniciado em qualquer nível de execução. No entanto, reiniciando, ele carrega. O chkconfig -s gdm off não impediu a inicialização.
Doug
2
Há um link aqui também sugerindo que chkconfig não é o instrumento adequado para uso: ubuntuforums.org/showthread.php?t=1559266
Doug
Eu nunca gostei da inicialização do Ubuntu - e do Linux em geral. Sempre parece tão bagunçado e desleixado. Me dê o rcng do FreeBSD a qualquer dia. De qualquer forma - específica para gerenciador de exibição do Ubuntu você tem o que a minha edição espectáculos ...
Majenko
+1 para corrigir após a edição, com detalhes para o início.
Doug
5

Eu sempre achei a ferramenta sysv-rc-conf muito útil, ela tem uma interface muito agradável e fácil de usar.

instale-o assim:

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

use-o assim:

sudo sysv-rc-conf
n0mad
fonte
1
Eu não acho que funciona para serviços arrivista embora ..
Rajat Gupta
3

Basta dar uma olhada man 5 inite você encontrará uma solução mais apropriada. Exemplo curto: digamos que temos um serviço chamado "foobar"; portanto, haveria um arquivo chamado /etc/init/foobar.confcom sua configuração inicial. Agora você não deseja remover esse arquivo nem modificá-lo - mas também não deseja que este serviço seja executado? Então coloque uma substituição de arquivo ao lado dele: /etc/init/foobar.override, contendo (opcionalmente o cabeçalho com a descrição e) em vez dos start on/ stop onlinhas que você colocar uma linha com uma palavra: manual. Dessa forma, você instrui o iniciante a usar basicamente o foobar.conf, mas substitui a definição de inicialização para iniciar apenas esse serviço quando aplicado manualmente (via service foobar startem nosso exemplo).

Izzy
fonte
2

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

user35060
fonte
1

O Upstart é um gerenciador de inicialização orientado a eventos , e os níveis de execução não são o principal mecanismo 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á a minha pós-edição:

start on
stop on runlevel [016]
Jason Martens
fonte
1
Corrigir; no entanto, isso basicamente não é melhor do que apenas mover / remover o arquivo etc / init / gdm.conf; Estou (ainda) surpreso que editar manualmente o arquivo de configuração parece ser a única maneira de fazer isso.
Doug
1

Aqui está uma solução:

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

@Matt Jenkins

Eu nunca gostei da inicialização do Ubuntu - e do Linux em geral. Sempre parece tão bagunçado e desleixado. Me dê o rcng do FreeBSD a qualquer dia. Enfim - específico para o gerenciador de exibição do Ubuntu> você tem o que minha edição mostra ...

O Arch Linux possui um bom sistema init. No entanto, o systemd sopra qualquer outro sistema init do planeta.

Pawlo
fonte