Como executar um arquivo executável (web app) 24/7 e reiniciar automaticamente quando ele falhar?

0

Eu tenho um arquivo executável em um servidor que é um aplicativo da web autônomo completo. Quando eu faço login em um servidor via ssh e executo o arquivo, o site fica visível na internet. Obviamente, porque é executado via ssh por mim, quando eu desligar o site cai.

Qual é a maneira idiomática e fácil de executar esse arquivo 24 horas por dia, 7 dias por semana e, de preferência, relançar quando ele for desativado?

É o Ubuntu 15, mas a minha pergunta é bem mais ampla porque eu quero aprender como fazer isso em outras distribuições também.

Eu não quero usar nenhuma solução de terceiros ou serviços da web, apenas as ferramentas e aplicativos padrão do Linux.

Devo criar um serviço para o systemd?

    
por Oskar K. 15.04.2016 / 15:24

1 resposta

3

Sim, criar um serviço systemd é o caminho a percorrer. Você precisará escrever um arquivo de serviço, que no seu caso não precisa muito. Aqui está um esboço de tal arquivo:

[Unit]
Description=your description here
After=syslog.target

[Service]
ExecStartPre= [script to run before starting the service]
ExecStart= [script to run the actual service]
Restart=on-abort

[Install]
WantedBy=multi-user.target

Isso deve ir em /etc/systemd/system/yourservice.service . Agora você pode iniciar, parar, reiniciar e encontrar o status de seu serviço usando os comandos systemctl . Vários outros exemplos e opções podem ser encontrados na web e neste site.

Esta solução seria portátil para todos os sistemas Linux que executam systemd . Para sistemas que executam o SysV ou o Upstart, você terá que encontrar uma solução diferente.

    
por Jos 15.04.2016 / 15:48