Como criar um serviço no Linux usando script Python
Introdução
Rodar scripts Python como serviços no Linux é uma excelente maneira de automatizar rotinas e garantir que seus processos sejam reiniciados automaticamente em caso de falha. Para isso, podemos usar o systemd, o gerenciador de serviços padrão em diversas distribuições Linux modernas.
Etapas para criar o serviço
A seguir está um passo a passo completo para transformar um script Python em um serviço systemd no Linux:
1. Crie um script Python para gerar o arquivo de serviço
Você pode utilizar o seguinte código em Python para gerar automaticamente o arquivo de serviço:
# cria_servico.py
servico = """[Unit]
Description=Minha rotina automatizada em Python
After=multi-user.target
[Service]
Type=simple
Restart=always
User=seuusuario
ExecStart=/usr/bin/python /home/ubuntu/site/arquivo.py
[Install]
WantedBy=multi-user.target
"""
with open('/etc/systemd/system/meuprimeiroservico.service', 'w') as arquivo:
arquivo.write(servico)
- Altere o campo
Descriptionpara algo que descreva sua rotina. - Substitua
seuusuariopelo nome do usuário correto do seu sistema. - Atualize o caminho do
ExecStartcom o local real do seu script Python.
2. Execute o script Python com privilégios de administrador
Salve o arquivo acima (por exemplo, como cria_servico.py) e execute no terminal:
sudo python cria_servico.py
Esse comando criará o serviço no diretório /etc/systemd/system/, que é onde o systemd busca por definições de serviços personalizados.
3. Habilite e inicie o serviço
Após criar o arquivo de serviço, ative-o e inicie com os seguintes comandos:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable meuprimeiroservico.service
sudo systemctl start meuprimeiroservico.service
Verificando o status do serviço
Você pode acompanhar o status do seu serviço com:
sudo systemctl status meuprimeiroservico.service
E caso precise reiniciar ou parar o serviço:
sudo systemctl restart meuprimeiroservico.service
sudo systemctl stop meuprimeiroservico.service
Boas práticas e observações
- Garanta que o seu script Python esteja funcional e testado antes de configurar como serviço.
- Evite interações manuais ou prompts no script se ele estiver rodando como serviço.
- Se necessário, utilize logs para debugar o funcionamento do serviço.

Comentários
Comente só assim vamos crescer juntos!