[DICA] - RODAR UM SCRIPT PYTHON EM BACKGROUND EM UM SISTEMA LINUX (PT. 2)
Olá devs, tudo certo?
Alguns meses atrás eu fiz uma postagem sobre como tornar um script em Python em um serviço, fazendo assim com que seja possível roda-lo em background (muito útil em casos de algum chat-bot ou webscrapping.
Hoje vim trazer, não um complemento e muito menos uma atualização, mas sim uma alternativa para o primeiro método, trazendo assim todos os pontos negativos e positivos sobre cada um em relação ao outro.
Instalação
Primeiro verifique se o Screen já está instalado no sistema, utilizando o seguinte comando:
screen --version
Se você obter o output mostrando a versão do software quer dizer que o screen já está instalado no seu sistema e você já pode ir para a próxima etapa. Agora, se esse output não apareceu será necessário instalar utilizando os seguintes comandos
- Ubuntu e Debian:
sudo apt update
sudo apt install screen
- CentOS e Fedora:
sudo yum install screen
Com o Screen instalado agora é necessário que você vá até o diretório que está localizado o seu script (um detalhe é que, apesar de no título da postagem estar específicado somente scripts Python, qualquer script ou software que possa ser executado via CLI é apto a esse tutorial) e executar o seguinte comando:
screen -dmS <nome-da-sessão> python <nome-do-arquivo>.py
E feito isso, seu script já está rodando em background e se você quiser, pode fechar a aba do terminal ou a conexão ssh com a segurança de que o processo do script não ira parar
OBS: Se você quiser usar outra linguagem de programação ou executar um código em linguagem de maquina é só trocar o python <nome-do-arquivo>.py
pelo comando que você utiliza para executar seu código.
Monitoramento
Se você precisar ver o console, ou fornecer algum input para o seu código basta executar o comando:
screen -r <nome-da-sessão>
Que ira aparecer uma nova janela mostrando o output do código, e para sair dessa janela basta utilizar as teclas Ctrl + A
e D
.
Comparação entre os métodos
Um dos principais pontos positivos desse método em relação ao anterior é a facilidade e a rapidez de realizá-lo comparado ao outro método. Outro ponto positivo é que utilizando o screen você consegue monitorar os outputs do seu código e inserir inputs se for necessário.
Partindo agora para os pontos negativos, ou o ponto negativo, é que toda vez que o sistema reinicia é necessário configurar a sessão novamente, então, se por exemplo, a energia da sua casa cair durante a noite o sistema só voltará a funcionar quando você acordar e de fato criar novamente a sessão, coisa que não acontece quando você cria um serviço como no outro método