Como instalar e configurar systemd para executar scripts Python
Vamos direto ao ponto. Se a imagem que você está criando não tiver o systemd, instale-o usando o seguinte comando:
sudo apt-get install -y systemd
Criação de um script Python para teste
Após isso, crie um arquivo de teste para validar se o Python está funcionando corretamente. Estou utilizando este script de exemplo:
sudo nano arquivo.py
Digite o código abaixo no arquivo e salve-o com o nome desejado (por exemplo, arquivo.py):
import time from datetime import datetime while True: with open("timestamp.txt", "a") as f: f.write("The current timestamp is: " + str(datetime.now()) + "\n") time.sleep(10)
Criando o serviço systemd para o script Python
Agora vamos criar um serviço para executar o script .py
. Crie um arquivo chamado teste.service
usando o seguinte comando:
sudo nano /etc/systemd/system/teste.service
Copie e cole o seguinte conteúdo no arquivo:
[Unit] Description=Rotina para execução do arquivo.py 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
Importante: substitua Rotina para execução do arquivo.py pelo nome que deseja dar ao serviço e Seuusuario pelo seu nome de usuário no sistema. Ajuste também o caminho para o Python e para o arquivo .py
conforme sua estrutura de diretórios.
Ativando e iniciando o serviço
Salve e feche o arquivo. Agora, para iniciar o serviço e configurá-lo para execução automática na inicialização do sistema, execute:
sudo systemctl daemon-reload sudo systemctl enable teste.service sudo systemctl start teste.service
Verificando o status do serviço
Para verificar se o serviço está rodando corretamente, use o comando:
sudo systemctl status teste.service
Você também pode controlar o serviço com outros comandos úteis, como:
sudo systemctl stop teste.service
— para parar o serviço;sudo systemctl restart teste.service
— para reiniciar o serviço;sudo journalctl -u teste.service -n 100
— para visualizar os últimos 100 logs do serviço.
Correção de problemas de rede em VMs Linux
Se estiver enfrentando problemas de acesso à internet em suas máquinas virtuais (VMs), pode ser necessário ajustar as configurações de DNS. Para isso, edite o arquivo resolv.conf
:
sudo nano /etc/resolv.conf
No arquivo, altere o valor de nameserver
de 127.0.0.X
para o DNS público do Google:
nameserver 8.8.8.8
Salve e saia do editor. Evite reiniciar a VM após essa alteração, pois algumas distribuições podem sobrescrever o arquivo automaticamente ao reiniciar.
Considerações finais
Esse tutorial oferece um passo a passo para criar, configurar e gerenciar um serviço Linux usando systemd que executa scripts Python continuamente. Essa abordagem é útil para tarefas de monitoramento, automação ou qualquer processo que precise rodar em background com reinício automático.
Nota importante para investidores e usuários: Sempre analise cuidadosamente e entenda o funcionamento dos scripts e serviços antes de executá-los, especialmente em ambientes produtivos ou que envolvam dados sensíveis.