Maneira correta de instalar um serviço upstart personalizado

49

Estou usando o upstart para serviços em meus servidores. Escrever um arquivo conf e colocá-lo em /etc/init é bastante fácil, mas isso não parece ser completamente instalado. Por um lado, o service --status-all não lista meu novo serviço. Eu verifiquei e se eu fizer um link em /etc/init.d to /lib/init/ubstart-job ele aparecerá no status. Mas fazer isso manualmente me faz pensar que não estou fazendo certo, e pode haver outras etapas de configuração que não estão sendo feitas.

Qual é a maneira correta de instalar um serviço upstart de modo que ele seja registrado corretamente em todas as ferramentas que lidam com serviços?

    
por edA-qa mort-ora-y 24.05.2013 / 08:48

5 respostas

42

Quando você copia inicialmente um novo arquivo conf na pasta / etc / init, você precisa chamar:

initctl reload-configuration

Por este seu upstart deve ser registrado corretamente.

    
por tombert 31.05.2013 / 23:35
18

Confira o manual de serviço:

  

service --status-all executa todos os scripts init, em ordem alfabética, com o comando status. Esta opção só chama o status para tarefas sysvinit, as tarefas upstart podem ser consultadas de maneira similar com a lista initctl.

(ênfase adicionada)

É por isso que adicioná-lo ao /etc/init.d (onde as tarefas do sysvinit estão localizadas) fez esse trabalho. Então, tente executar initctl list em vez disso :).

    
por Kyle 24.05.2013 / 17:40
9

Amigo, certifique-se de seguir os seguintes passos ao adicionar / criar um novo serviço no Ubuntu.

  1. Crie o arquivo de serviço em /etc/init.d/<service name>
  2. chmod 700 /etc/init.d/<service name>
  3. update-rc.d <service name> defaults
  4. update-rc.d <service name> enable

veja agora você atende em

service --status-all
    
por Suyash Jain 12.09.2014 / 18:16
0

Descobri que um erro no arquivo .conf pode tornar o trabalho não reconhecível para o initctl. por exemplo, ter uma linha setuid na versão 1.3 do Upstart ou anterior.

    
por jcomeau_ictx 09.03.2015 / 22:51
0

Enquanto a atual resposta escolhida está correta para obter o novo serviço adicionado ao upstart, não é particularmente útil descobrir porque uma configuração em / etc / init / está falhando ao carregar - a parte que falta está usando o init-checkconf primeiro para ter certeza de que sua configuração é válida e, em seguida, usando a configuração de recarregamento:

####Test the new config - resolving any issues before continuing:
ERROR: File /etc/init/test.conf: syntax invalid:
test.conf:35: Unterminated quoted string

####then fix and recheck:
# init-checkconf /etc/init/test.conf
File /etc/init/test.conf: syntax ok

####then reload:
# initctl reload-configuration

#### and start:
# start test
    
por Jeff Parsons 20.03.2018 / 00:15

Tags