Inicialização Automática no Linux com systemd

Você fez deploy do seu app Flask em uma instância EC2 e tudo funciona. Aí a instância reinicia após um evento de manutenção e o app não volta. A correção é um serviço systemd: ele diz ao Linux para iniciar o seu app automaticamente em cada boot, reiniciá-lo se travar, e gerenciar os logs pelo journald.

TL;DR: Crie um serviço systemd no Linux para iniciar automaticamente um app Flask no boot e mantê-lo rodando após travamentos.
Stack: Linux, systemd, Flask, EC2
Nível: Intermediário
Tempo de leitura: ~5 min

Criar o arquivo de serviço systemd

sudo nano /etc/systemd/system/meu-app.service
[Unit]
Description=Meu App Flask
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/meuapp
ExecStart=/home/ubuntu/meuapp/venv/bin/flask run --host=0.0.0.0 --port=5001
Environment="PATH=/home/ubuntu/meuapp/venv/bin"
Restart=always

[Install]
WantedBy=multi-user.target

Os campos principais: ExecStart é o comando a executar, Restart=always faz o systemd reiniciar o processo se ele sair por qualquer motivo, e WantedBy=multi-user.target faz com que ele inicie em cada boot normal.

Habilitar e iniciar o serviço

sudo systemctl daemon-reload
sudo systemctl enable meu-app.service
sudo systemctl start meu-app.service

Depuração

journalctl -u meu-app.service -f

O que você construiu

Um serviço systemd que inicia o seu app Flask automaticamente em cada boot, reinicia em caso de travamento, e escreve logs no journal. O mesmo padrão funciona para qualquer processo de longa duração: apps FastAPI, workers, jobs em background.

Próximos passos

  • Use journalctl -u seu-servico.service -f para ver logs em tempo real ao depurar problemas de inicialização.
  • Adicione um script HealthCheck à configuração do serviço para que o systemd possa reiniciá-lo se o app iniciar mas não estiver respondendo ao HTTP.
  • Em produção, coloque o Nginx na frente do Flask e gerencie o Nginx como um serviço systemd separado.

Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.

Deixe um comentário