Transformar Script Python em serviço linux.

1. Transformar Script Python em serviço linux.

glauco de oliveira ribeiro
glaucoribeiro

(usa Ubuntu)

Enviado em 25/11/2018 - 22:26h

Boa noite.

Trabalho na gestão de um provedor, atualmente usamos o Zabbix/Grafana e o Dude do MK. Adaptei um script python de ping para pingar certa de 650 ip a cada 1min e armazena o resultado em uma mysql, esta funcionando perfeitamente. transformar esse script em um serviço do linux, tentei em um ubuntu server mas nao consegui, amanha estarei tentarei em un centOS.

Alguém poderia me ajudar como transformar um script python em um serviço, pretendo coloca-lo para iniciar automaticamente ao iniciar do sistema.


  


2. Re: Transformar Script Python em serviço linux.

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 25/11/2018 - 23:17h

Você pode fazer isso criando um systemd service para o teu script. Crie um arquivo meuservico.service dentro de /etc/systemd/system com o seguinte conteúdo:

[Unit]
Description=Meu servico
After=network.target

[Service]
Type=simple
User=fulano
WorkingDirectory=/home/fulano
ExecStart=/home/fulano/meuscript.py --option=123
Restart=on-failure

[Install]
WantedBy=multi-user.target


Obviamente, mude os parâmetros do arquivo de exemplo.

Para iniciá-lo:

# service meuservico start

Aí pode usar stop e restart, como qualquer outro serviço.

Para fazê-lo iniciar durante o boot:

# systemctl enable meuservico (ou disable para remover)




3. Re: Transformar Script Python em serviço linux.

glauco de oliveira ribeiro
glaucoribeiro

(usa Ubuntu)

Enviado em 26/11/2018 - 09:48h

fabio escreveu:

Você pode fazer isso criando um systemd service para o teu script. Crie um arquivo meuservico.service dentro de /etc/systemd/system com o seguinte conteúdo:

[Unit]
Description=Meu servico
After=network.target

[Service]
Type=simple
User=fulano
WorkingDirectory=/home/fulano
ExecStart=/home/fulano/meuscript.py --option=123
Restart=on-failure

[Install]
WantedBy=multi-user.target


Obviamente, mude os parâmetros do arquivo de exemplo.

Para iniciá-lo:

# systemctl meuservico start

Aí pode usar stop e restart, como qualquer outro serviço.

Para fazê-lo iniciar durante o boot:

# systemctl enable meuservico (ou disable para remover)



Muito obrigado.
Vo testar aqui... e posto o resultado


4. Re: Transformar Script Python em serviço linux.

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 28/11/2018 - 12:32h

Editei minha resposta, onde escrevi:

# systemctl meuservico start

O correto é:

# service meuservico start


5. Re: Transformar Script Python em serviço linux.

glauco de oliveira ribeiro
glaucoribeiro

(usa Ubuntu)

Enviado em 28/11/2018 - 21:23h

não deu certo.


● hawkeye8.service - HawkEye8
Loaded: loaded (/etc/systemd/system/hawkeye8.service; disabled; vendor preset: disabled)
Active: failed (Result: start-limit) since Wed 2018-11-28 21:20:56 -02; 3s ago
Process: 26972 ExecStart=/usr/bin/meuscript.py --option=123 (code=exited, status=203/EXEC)
Main PID: 26972 (code=exited, status=203/EXEC)

Nov 28 21:20:56 168-197... systemd[1]: hawkeye8.service: main process exited, code=exited, status=203/EXEC
Nov 28 21:20:56 168-197... systemd[1]: Unit hawkeye8.service entered failed state.
Nov 28 21:20:56 168-197... systemd[1]: hawkeye8.service failed.
Nov 28 21:20:56 168-197... systemd[1]: hawkeye8.service holdoff time over, scheduling restart.
Nov 28 21:20:56 168-197... systemd[1]: start request repeated too quickly for hawkeye8.service
Nov 28 21:20:56 168-197... systemd[1]: Failed to start HawkEye8.
Nov 28 21:20:56 168-197... systemd[1]: Unit hawkeye8.service entered failed state.
Nov 28 21:20:56 168-197... systemd[1]: hawkeye8.service failed.




[Unit]
Description=HawkEye8
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/home/
ExecStart=/usr/bin/meuscript.py --option=123
Restart=on-failure

[Install]
WantedBy=multi-user.target




6. Re: Transformar Script Python em serviço linux.

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 28/11/2018 - 21:25h

Pois é, ele tá tentando executar o comando "/usr/bin/meuscript.py --option 123", que provavelmente não existe.

O service que eu te enviei é apenas um esqueleto, você precisa mudar as linhas conforme seu ambiente.


7. Re: Transformar Script Python em serviço linux.

glauco de oliveira ribeiro
glaucoribeiro

(usa Ubuntu)

Enviado em 28/11/2018 - 21:31h

fabio escreveu:

Pois é, ele tá tentando executar o comando "/usr/bin/meuscript.py --option 123", que provavelmente não existe.

O service que eu te enviei é apenas um esqueleto, você precisa mudar as linhas conforme seu ambiente.


Pior que o script esta no diretório, eu teria que transformá-lo em executavel ou colocar algo dentro do script?



8. Re: Transformar Script Python em serviço linux.

Fábio Berbert de Paula
fabio

(usa Debian)

Enviado em 28/11/2018 - 21:58h

glaucoribeiro escreveu:

Pior que o script esta no diretório, eu teria que transformá-lo em executavel ou colocar algo dentro do script?


Bom, o requisito básico para o serviço funcionar seria o comando em "ExecStart" funcionar né rsrsrs

Sim, a primeira coisa é ele estar como executável. A segunda é você executá-lo e ele se comportar como um daemon.


9. Re: Transformar Script Python em serviço linux.

glauco de oliveira ribeiro
glaucoribeiro

(usa Ubuntu)

Enviado em 29/11/2018 - 09:46h

Vlw pela ajuda.
Vo postar o que fiz para futuras consultas e ajudar outras pessoas.


[Unit]
Description=Hawkeye8
After=network.target

[Service]
ExecStart=/usr/bin/hawkeye8Ping.py
Restart=always
# Restart service after 10 seconds if node service crashes
RestartSec=1

[Install]
WantedBy=multi-user.target



Joguei os scripts no /usr/bin e dei chmod +x script.py

dentro do script coloquei no topo #!/usr/bin/env python
systemctl daemon-reload
service hawkeye8 start









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts