Ubuntu12.04: Como desabilitar um processo do daemon na inicialização

23

Eu normalmente uso service start/stop ou initctl start/stop para iniciar ou parar um processo de daemon, mas agora o que eu estou procurando é desabilitar um processo daemon a partir do exemplo de inicialização mysqld .

Atualmente, o que estou fazendo é renomear /etc/init/mysql.conf para /etc/init/mysql.conf.bak , mas depois de ler um pouco sobre systemd vim a saber que ele fornece a opção enable & disable para a tarefa acima.

Então, existe algo semelhante no Ubuntu 12.04 com upstart .

    
por RanRag 02.11.2012 / 20:40

7 respostas

26

Você pode desativar os serviços executando o seguinte comando:

sudo update-rc.d -f <service name> disable

Página do manual trecho:

When run with the disable [ S|2|3|4|5 ] options, update-rc.d modifies existing runlevel links for the script /etc/init.d/name by renaming start links to stop links with a sequence number equal to the difference of 100 minus the original sequence number.

    
por 02.11.2012 / 20:48
20

A maneira correta de desativar e iniciar o serviço é criar um arquivo XX.override,

echo 'manual' > /etc/init/mysqld.override

Dessa forma, o serviço upstart não será iniciado automaticamente

    
por 03.11.2012 / 01:04
7

@ warl0ck está certo; queria acrescentar que esta informação está documentada muito bem na documentação do Upstart: link

Especificamente:

With Upstart 1.3, you can make use of override files and the manual stanza to achieve the same result in a simpler manner [27]:

# echo "manual" >> /etc/init/myjob.override

Note that you could achieve the same effect by doing this:

# echo "manual" >> /etc/init/myjob.conf

However, using the override facility means you can leave the original job configuration file untouched.

To revert to the original behaviour, either delete or rename the override file (or remove the manual stanza from your ".conf" file).

    
por 08.11.2012 / 19:31
5

Existe também um bom software para ajudar nisso. É chamado rcconf.

Basta fazer o download usando:

sudo apt-get install rcconf

e use-o com o comando

rcconf

Você obtém uma interface agradável (linha de comando) para desabilitar / habilitar serviços.

    
por 03.11.2012 / 19:40
1

Tente navegar para /etc/rc2.d e renomeie o que você deseja que não seja executado na inicialização: altere o (inicial, maiúsculo) "S" para um "K" (por exemplo, S02mysql to% código%). Se você mudar de ideia, apenas inverta. Eu acho que o 2 se refere ao runlevel, em que caso 2 é o nível de execução multiusuário padrão. Provavelmente é onde você tem a maioria das coisas para o uso diário do computador.

Editar : Leia o comentário de James O'Gorman abaixo.

    
por 03.11.2012 / 00:43
0

Com o Upstart, a configuração do serviço está nos arquivos em /etc/init/ . Por exemplo, o ssh é controlado usando um arquivo de configuração /etc/init/ssh.conf

Este arquivo especifica os "eventos" que solicitarão ao Upstart para iniciar o "trabalho".

Para evitar que um serviço seja iniciado automaticamente, um dos vários métodos pode ser usado:
a) Renomeie o arquivo service.conf para que ele não termine com .conf
b) Comente a linha "start on" do arquivo service.conf.

Em versões mais recentes do upstart (desde a v1.3, pelo menos), você também pode substituir o início na linha usando um arquivo service.override, para que você possa usar:
# echo manual > /etc/init/service.override

Por fim, você também pode adicionar a palavra-chave "manual" ao final do arquivo de configuração do serviço, por exemplo: via%:# echo manual >> /etc/init/service.conf

Observe que isso não "interrompe" o serviço em execução, apenas impede que ele seja iniciado automaticamente. Enquanto configurado para inicialização "manual", você controla o serviço usando initctl, por exemplo, para parar e iniciar o daemon SSH:
# initctl stop ssh
# initctl start ssh

Indiscutivelmente, a melhor documentação para o Upstart está no link

A seção 11.44 aborda "desativando um serviço a partir da inicialização automática, aqui: link

    
por 30.04.2014 / 14:58
0

Bem, devo dizer que a declaração

echo "manual" >> /etc/init/myjob.override

é um pouco enganador porque significa anexar o arquivo de substituição. Eu testei isso em 14.04 com o network-manager e o seguinte não funcionou

vim /etc/init/network-manager.override:
start
manual

No entanto, isso funcionou

vim /etc/init/network-manager.override:
#start
manual

Então, IMO, o initctl procura pela primeira linha não comentada e a executa. Talvez eu esteja errado, mas esses foram os resultados do meu teste. Entradas são bem vindas.

    
por 27.01.2016 / 16:40