Upstart não está vendo meu novo script

26

Eu adicionei um novo script para /etc/init/ chamado minecraft.conf , que contém o script:

start on startup
stop on shutdown
respawn
respawn limit 20 5

script
  export HOME="/root"
  exec /root/minecraft/start.sh 2>&1 >> /var/log/minecraft.log
end script

post-start script
   echo "minecraft started"

Quando tento start minecraft , recebo o erro: start: Unknown job: minecraft

Eu tentei executar initctl list e meu trabalho de minecraft não está listado. Eu tentei executar initctl reload-configuration e isso não faz nenhuma diferença.

Outros trabalhos listados por initctl list funcionam bem com o início, parada e reinicialização.

Por que o novo roteiro não será visto pela primeira vez?

    
por Jasarien 24.01.2013 / 16:20

5 respostas

8

Eu me sinto meio idiota ... Mas aqui está:

Eu perdi a estrofe "end script" do final do script inicial ...

post-start script
   echo "minecraft started"

deveria ter sido

post-start script
   echo "minecraft started"
end script

Não sei porque funcionou para @schkovich sem o end script , embora ...

    
por Jasarien 25.01.2013 / 18:37
11

Uma maneira fácil de verificar sua sintaxe de script é com o seguinte comando:

init-checkconf -d /etc/init/service_name.conf

Descobri que, mesmo com um arquivo Upstart válido, se o arquivo não existia quando o servidor foi inicializado, preciso reinicializar o servidor para que o Upstart veja o arquivo.

    
por Mike Bethany 25.06.2015 / 17:28
11

Verifique os logs de arranque (está em /var/log/syslog ) enquanto recarrega a configuração usando initctl reload-configuration . Se houver um erro de sintaxe, ele será exibido lá. Normalmente, é por isso que você não pode usar sua nova configuração inicial.

    
por rcomblen 08.10.2015 / 14:16
4

No meu caso, era um campo author vazio, como este:

author ""

Funcionou apenas depois de adicionar algo nas citações.

# initctl reload-configuration

também estava jogando /etc/init/servicename.conf:2: Expected token para o syslog em vez de stdout . Ocupado demais para enviar um relatório de bug para um pacote que está morrendo.

    
por int_ua 30.03.2015 / 20:50
2

Talvez não seja aplicável especificamente a isso, mas vale a pena mencionar: Se você editar um arquivo de configuração do Upstart para um serviço em execução, a execução de restart NÃO recarregará a configuração. Você precisa executar stop e start para que as novas alterações entrem em vigor.

link

    
por kristi 04.12.2017 / 23:52

Tags