Daemonizar processo com inicialização automática

Daemonizar processo com inicialização automática

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 upstartmuito mais facilidade do que os serviços padrão runite 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/skeletoncomo 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

informação relacionada