Você deve criar um serviço init. O Ubuntu usa upstart. link
Eu tenho um servidor web RingoJS (executado no Jetty) que faz parte de uma configuração de proxy reverso do Apache.
Eu gostaria que vários processos do Ringo fossem executados autonomamente em segundo plano, iniciados automaticamente na reinicialização, etc. Basicamente, o mesmo que os daemons do Apache ou Postgresql fariam.
Eu investiguei processos em execução em segundo plano (via & ou bg), nohup e usando a tela para manter vários contextos. Não sei qual é a melhor prática aqui.
Gostaria de poder identificar facilmente (nome amigável) cada processo do RingoJS em execução. (um para cada aplicativo). Então, seja capaz de iniciá-los e pará-los facilmente da maneira que se faz com o apachectl ou algo assim. Eu gostaria que os processos iniciassem automaticamente na reinicialização e não fossem afetados por sessões ssh repetidas.
A tela parece ser uma boa escolha, mas seu caso de uso parece mais para portar contextos de shell do que para manter processos de sistema de longa execução. Eu posso executar trabalhos em segundo plano, mas me preocupo com processos zumbis depois de fazer logoff ou PIDs crípticos que não identificam claramente qual app / serviço está sendo executado.
Alguém pode fornecer algumas indicações sobre o que "eu deveria" estar fazendo para alcançar esse resultado?
Obrigado.
Você deve criar um serviço init. O Ubuntu usa upstart. link
Para aplicativos que não possuem um método interno para executar como um deamon, você provavelmente desejaria usar o start-stop- daemon dentro de um script init / upstart criado para iniciar o aplicativo. Você pode usar o start-stop-daemon para iniciar algo em segundo plano, ele pode registrar o pid no sistema de arquivos para que ele possa parar o processo quando chegar a hora.
Apenas olhe em /etc/init.d/ para muitos exemplos, especificamente checkout / etc / init / skeleton para um template. Muitos dos scripts de inicialização existentes usam o daemon start-stop. Incluindo ssh, ntp, rsync e muitos outros.