
Eu escrevi um programa de servidor para minha empresa e agora gostaria de mantê-lo rodando no servidor Ubuntu.
Eu estava pensando em configurar um cronjob para reiniciar todo o sistema uma vez por semana (por motivos de segurança, para limpar a RAM em caso de vazamentos de memória que ainda não encontrei.. etc..) mas não tenho certeza de como devo fazer mantenha o processo em andamento.
Neste momento estou fazendo um
screen
./launch_server
e destacando-o. Esta é uma boa maneira de executar um programa exposto na Web em um servidor? Preciso de algo como daemontools ou runit por algum motivo?
Responder1
Sua pergunta é na verdade uma combinação de duas perguntas:
- Como executo um programa na inicialização?
UsarSubir na vidaousistema(um script em /etc/init.d
), dependendo da sua versão.
- Como faço para mantê-lo funcionando?
A abordagem mais simples seria adicionar um cron job que verifica se o nome do processo está no estado de execução e o reinicia se não estiver. Eu complementaria isso enviando um e-mail para você quando descobrir que esse é o caso, para que, se houver algo acontecendo com o sistema que o esteja matando repetidamente, você saberá. Eu também adicionaria o registro de data e hora ao programa, caso ainda não o tenha feito, para que você possa ter um registro de quando esses eventos ocorrem.
Se possível, o sinal ou condição que causou sua morte também deve ser registrado para que você possa evitá-lo. Você pode até considerar adicionar os logs do programa aos seus e-mails automatizados.