Remover serviços do iniciante

9

Eu tenho o mysql instalado (a partir de repositórios) em uma máquina de desenvolvimento (laptop) e não preciso do daemon em cada inicialização. Copiei o /etc/init/mysql.conf para /etc/init/mysql.conf.old e depois removi tudo seguindo a linha "iniciar". No entanto, após a reinicialização, não consigo mais iniciar o mysqld por meio do upstart:

$ sudo service mysql start
start: Unknown job: mysql

Isso também falha (tentando qualquer coisa neste momento):

$ sudo service mysql restart
stop: Unknown job: mysql
start: Unknown job: mysql

Este é o meu script inicial:

# /etc/init/mysql.conf
....
start on
stop on starting rc RUNLEVEL=[016]

Este é o script padrão:

# /etc/init/mysql.conf.old
....
start on runlevel [2345]
stop on starting rc RUNLEVEL=[016]

Tudo o que li até agora sugere que é assim que os serviços podem ser impedidos de iniciar no momento da inicialização. Existe uma maneira melhor de fazer isso ou cometi um erro no script inicial?

UPDATE : Mudei o arquivo conf de backup para / etc / init e reiniciei pensando que talvez houvesse um conflito, mas o iniciante ainda dizUnknown job: mysql

xst
fonte
Verifique / var / log / syslog, provavelmente irá dizer que há problemas de sintaxe no /etc/init/mysql.conf. Você também pode tentar 'init-checkconf /etc/init/mysql.conf'
#

Respostas:

17

Se você estiver no Ubuntu 11.04 ou posterior, poderá usar a manualpalavra - chave e os arquivos .override em / etc / init para desativar a inicialização automática:

sudo sh -c 'echo manual >> /etc/init/mysql.override'

manualremove efetivamente a start onestrofe da configuração da tarefa.

Se você estiver no Ubuntu 10.04, pode fazer o seguinte:

sudo sh -c 'echo start on never >> /etc/init/mysql.conf'

O último start on no arquivo substituirá os anteriores, portanto, isso deve funcionar, embora assuma que não há nenhum evento chamado never.

SpamapS
fonte
0

A partir deste post: O "iniciar em" necessidades de seção para ser completa e correta na sintaxe.

start on runlevel [!0123456]

Essa linha significa executar quando o nível de execução não está em [0,1,2,3,4,5,6] (esses são os únicos níveis de execução, portanto, isso nunca é executado).

Outra opção está usando chkconfigconforme este post.

xst
fonte