Como Reiniciar um Script em Loop com Python e Subprocess
Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.
Como Reiniciar um Script em Loop com Python e Subprocess
Você já precisou garantir que um determinado script Python continue rodando indefinidamente, mesmo após falhas ou interrupções? Isso é especialmente útil em aplicações como robôs de automação, scripts de monitoramento ou tarefas contínuas em servidores. Neste artigo, veremos como criar uma estrutura em Python capaz de reiniciar automaticamente outro script sempre que ele finalizar sua execução, utilizando o módulo subprocess.
A estratégia é simples: criamos um script principal que chama repetidamente outro script chamado loopbin.py. Assim que a execução termina, o processo é reiniciado em um loop infinito. Também utilizamos o gc.collect() para liberar memória inutilizada a cada repetição, o que ajuda a manter a performance estável ao longo do tempo.
Dependências Utilizadas
Este script utiliza apenas bibliotecas padrão do Python, portanto, não é necessário instalar nada via pip:
- os: para interações com o sistema operacional (não usada diretamente neste caso, mas importada por padrão)
- time: caso queira incluir atrasos entre execuções
- subprocess: para executar comandos do sistema, como a chamada do script externo
- gc: o coletor de lixo do Python, usado para liberar memória inutilizada
Código Python Completo
Veja abaixo o script completo que reinicia continuamente o arquivo loopbin.py:
import os
import time
import subprocess
import gc # Garbage collector
def reiniciar_loopbin():
while True:
process = subprocess.run(['python', 'loopbin.py'])
# Força coleta de lixo para garantir liberação de memória
gc.collect()
if __name__ == "__main__":
reiniciar_loopbin()
Como Funciona
- A função
reiniciar_loopbin()entra em um loop infinito (while True). - Dentro desse loop, ela chama o script
loopbin.pycomsubprocess.run(). - Quando o script chamado termina, o controle retorna ao loop, que o executa novamente.
- Em cada iteração, chamamos
gc.collect()para liberar a memória não utilizada, prevenindo vazamentos de memória ou sobrecarga ao longo do tempo.
Aplicações Práticas
Este padrão pode ser utilizado em diversos cenários:
- Executar robôs de automação que trabalham com web scraping
- Manter bots ou scripts de jogos online rodando continuamente
- Monitorar sensores ou arquivos de log em tempo real
- Executar tarefas agendadas em servidores que não usam cron jobs
Dicas e Melhoria
- Se desejar evitar travamentos em caso de erro, você pode adicionar um
try/exceptao redor da execução do subprocesso. - Adicione logs com timestamps para acompanhar a execução do script.
- Utilize
time.sleep(1)entre as execuções para evitar sobrecarga.
Exemplo com Tratamento de Erros
def reiniciar_loopbin():
while True:
try:
subprocess.run(['python', 'loopbin.py'])
except Exception as e:
print(f"Ocorreu um erro: {e}")
finally:
gc.collect()
time.sleep(1)
Documentação Oficial
Para saber mais sobre o módulo subprocess, consulte a documentação oficial do Python:
https://docs.python.org/3/library/subprocess.html
Já a documentação do gc pode ser acessada em:
https://docs.python.org/3/library/gc.html
Responsabilidade e Uso Ético
Se estiver usando este tipo de script em atividades que envolvem automação em sites, mineração de dados ou bots, é essencial garantir que você esteja respeitando os Termos de Uso das plataformas e as legislações vigentes. Evite automações maliciosas ou que causem sobrecarga indevida em sistemas de terceiros.

Comentários
Comente só assim vamos crescer juntos!