Como definir um trabalho Upstart para iniciar manualmente?

15

Quero desabilitar vários trabalhos iniciados aqui. Eu sei como fazer um trabalho inicial. E também sei como parar manualmente um trabalho. No entanto, não consigo encontrar uma amostra em que transformo automaticamente um trabalho manualmente. Ou seja, desejo que o trabalho seja iniciado apenas quando o usuário ativar, por exemplo, executando este comando (como root):

service job-name start

Marcos Roriz Junior
fonte

Respostas:

9

Apenas para referência: Desde o inicio do 0.6.7 (no Ubuntu desde o natty), existe uma estrofe chamada manual criada para esse fim.

MvG
fonte
15

Exclua ou comente a start onpeça (usando o sinal de número '#'). Comentá-lo tem a vantagem de fácil recuperação do estado original.

htorque
fonte
Você também pode remover o início da parte (ou não adicionar um, se estiver escrevendo um trabalho), mas comentar é útil se você deseja reativá-lo mais tarde ...
JanC
Este funcionou bem. A inicialização automática foi desativada enquanto eu posso iniciar manualmente o Mongod como um serviço. Obrigado.
Nidhin David
5

Conforme mencionado pelo @MvG, existe a manualestrofe que declara que um serviço inicial deve ser iniciado apenas manualmente.

Como root, coloque isso no .overridearquivo para /etc/init/corresponder ao nome do seu trabalho:

echo "manual" > /etc/init/${JOB-NAME}.override

ou usando o sudo:

echo "manual" | sudo tee /etc/init/${JOB-NAME}.override
quazgar
fonte
0

O Apache, por exemplo, não usa 'upstart'. O Apache é um link Sys V antiquado a partir de rc2.d

A dica é quando um serviço está ausente, como: '/etc/init/apache2.conf'

Nesses casos, você precisa de boas técnicas antiquadas de SysV.

Um ponto de partida é: procure um README no /etc/init.d

Também existem ferramentas GUI para ajustar os níveis de execução

Nota Bene: o inicio está sendo depreciado e, eventualmente, as distros migrarão para o systemd. Oh, que divertido.

EvadingGrid
fonte