Eu tenho um script simples escrito em Ruby.
- Gostaria de executar como uma tarefa em segundo plano (processo ou serviço daemon).
- Além do mais, quero ter controle sobre isso para poder iniciá-lo e pará-lo.
- Será perfeito se o processo puder ser iniciado automaticamente quando meu VPS for reiniciado.
Existe alguma maneira de fazer isso?
Responder1
Na verdade encontrei a solução perfeita para isso. Requer upstart
muito mais facilidade do que os serviços padrão runit
e systemd
.
Aqui estão instruções mais detalhadas: http://blog.arkency.com/2014/06/create-run-and-manage-your-background-processes-with-upstart/
E é algo como:
Em /etc/init/my_program_upstart_script.conf
:
start on my_event
respawn
exec /home/my_user/my_program/my_program_executable
Sim, tão simples!
Basta executar o programa com sudo initctl emit my_event
.
Responder2
Uma maneira simples é criar scripts bash que iniciam/param seu aplicativo. Siga /etc/init.d/skeleton
como exemplo.
Instale seu script:
sudo copy yourApplicationCtl /etc/init.d
sudo chmod +x /etc/init.d/yourApplicationCtl
Para iniciar seu aplicativo na inicialização do servidor e parar no desligamento:
sudo update-rc.d yourApplicationCtl defaults
Se você deseja iniciar/parar manualmente seu aplicativo:
sudo service yourApplicationCtl start/stop
Links úteis são:UbuntuBootupComo fazer, página de manual deatualizar-rc.deserviço