Como usar o systemd para iniciar seu script/Aplicação no Debian
Nas últimas distribuições Debian (9) é instalado por padrão systemd em vez de sysvinit como sistema de inicialização. Este artigo ilustra como usá-lo.
Para iniciar um script na inicialização, um arquivo de serviço deve ser criado no systemd.
Vou pegar como base o script de firewall que publiquei (Modelo simples e funcional de Firewall com iptables)
Vamos criar um arquivo de serviço para o nosso programa firewall. Crie como root um arquivo chamado rr-firewall.service no diretório /lib/systemd/system.
1 |
# vim /lib/systemd/system/rr-firewall.service |
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=Firewall [Service] Type=simple RemainAfterExit=yes ExecStart=/etc/init.d/rr-firewall start ExecStop=/etc/init.d/rr-firewall stop ExecReload=/etc/init.d/rr-firewall restart [Install] WantedBy=multi-user.target |
Recarregue a nova definição do serviço:
1 |
# systemctl daemon-reload |
Ative o novo serviço, e verifique se o mesmo foi ativado
1 2 |
# systemctl enable rr-firewall # systemctl list-unit-files | grep rr-firewall |
Reinicie seu servidor e verifique se seu firewall foi carregado na inicialização.
1 |
# reboot |
Após reboot, verifique se as regras de firewall foram carregadas
1 |
# /etc/init.d/rr-firewall status |
Veja q nosso script de firewall foi carregado!
Você pode utilizar tabén os comandos:
1 2 3 4 |
# systemctl start rr-firewall # systemctl stop rr-firewall # systemctl restart rr-firewall # systemctl status rr-firewall |
Agora é so usar a criatividade 😉
Dica de uma boa leitura sobre Systemctl:
How To Use Systemctl to Manage Systemd Services and Units
Muito bom. Deu certo aqui.
Quem sabe sabe man !
parabéns e muito obrigado pela sua contribuição, me ajudou demais.
Abraço