Como criar um serviço no Ubuntu Upstart

20

Eu tenho um programa executável Java que posso executar digitando java -jar abc.jar no terminal. Como posso executá-lo como um serviço? Quero executá-lo como um serviço, digitando service abc start .

    
por mecek 30.09.2013 / 16:21

2 respostas

37

Verifique se você está no 14.04. O Ubuntu 16.04 (e acima) usa o systemd, não o Upstart.

Um script Upstart é um arquivo de script colocado em /etc/init/ e terminando em .conf .

Requer 2 seções: uma para indicar quando começar e outra com o comando para executar.

O script mais fácil de começar com sua amostra é:

# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program

Criado como raiz em /etc/init/myprogram.conf .

Se o seu script exigir mais de uma linha de comando, use a seção script em vez da exec line:

# myprogram.conf
start on filesystem
script
    /usr/bin/java -jar /path_to/program
    echo "Another command"
end script

Para ativar a conclusão do bash para o seu serviço, adicione um link simbólico na pasta /etc/init.d :

sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram

Em seguida, tente iniciar e interromper:

sudo service myprogram start

De acordo com o livro de receitas inicial , você pode criar pre-start / post-start e pre-stop / post-stop comandos a serem executados.

Além disso, eu li que você quer verificar se um processo está sendo executado. Verifique esta questão e talvez use a seção pre-start .

    
por Rael Gugelmin Cunha 16.04.2014 / 14:01
0

Você precisa criar um iniciante. link

Upstart é (IMHO) um desastre comparado a bons scripts de inicialização SysV. Upstart é muito mais esforço com pouca vantagem para o trabalho adicional. Com isso dito, eu suspeito que haverá alguns defensores novatos que me levarão a tarefa para mim declarando o óbvio; -)

    
por Andrew 30.09.2013 / 16:35