O systemD veio para ficar e já é bem utilizado em varias distribuições Linux substituindo o então conhecido SystemV. Neste artigo irei demostrar de forma prática, como realizar a configuração de um script para ser adicionado a inicialização do Linux através do SystemD.
CONSIDERAÇÕES
Neste artigo iremos utilizar a versão do Debian 9.5 – Stretch, mas fique a vontade para escolher a sua distro de preferência. Vamos também levar em consideração que você possua alguma aptidão em Linux.
Não é o intuito deste artigo explicar o que é SystemD ou SystemV, isso existe em peso na internet, o objetivo principal é demostrar como realizar uma configuração correta na utilização de scripts na inicialização do Linux utilizando SystemD.
Utilize esse artigo como um passo a passo para manipular seus scripts de inicialização.
1) CRIANDO SCRIPT.
Vamos criar um script simples, no qual desejamos que seja executado ao iniciarmos a máquina. Para isso, vamos criar um arquivo no diretório /etc/init.d/helloworld, e dar as devidas permissões de execução, conforme ilustrado abaixo:
echo -e '#!/bin/sh\necho\necho "Hello World"\necho' > /etc/init.d/helloworld.sh; chmod +x /etc/init.d/helloworld.sh
2) CRIANDO TARGET.
Com nosso script criado, precisamos agora criar uma target que irá controlar as chamadas deste script através do systemD. Para isso, vamos criar um arquivo no diretório /lib/systemd/system, e salva-lo com o nome helloworld.service
[Unit]
Description=Hello World
[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/etc/init.d/helloworld.sh start
ExecStop=/etc/init.d/helloworld.sh stop
ExecReload=/etc/init.d/helloworld.sh restart
[Install]
WantedBy=multi-user.target
Precisamos dar as devidas permissões aos nossa target criada.
chmod 664 /lib/systemd/system/helloworld.service
Precisamos também criar um link simbólico em /etc/systemd/system, apontando para nossa nova target.
ln -s /lib/systemd/system/helloworld.service /etc/systemd/system
Pronto só precisamos realizar o recarregamento do systemD que e feito reiniciando a maquina ou executando o comando abaixo
systemctl daemon-reload
Se desejar adicionar o script a inicialização do sistema bastas utilizar o comando ilustrado abaixo.
systemctl enable helloworld.service
CONCLUSÃO
Através deste artigo foi possível demostrar a criação de targets que são muito utilizadas junto ao novo SystemD. Espero que seja útil para vocês.
Se você gostou deste post e através dele pude lhe ajudar, o que acha de aproximarmos nosso contato? Siga meu blog e me adicione no Linkedin, aproveite para classificar algumas das minhas competências/recomendações, este simples gesto faz toda a diferença.
Att,
Rafael Oliveira
SysAdmin
4 respostas
Fala meu velho, me sinto teu amigo, de tantas vezes que me salvou, no Debian 10, tive que trocar o “ExecStart=/etc/init.d/helloworld.sh start por ExecStart=/etc/init.d/helloworld.sh –daemon” suei a camiseta pra fazer meu firewall subir junto com o boot, Abrço e obrigado pelo site
kkkk Massa Ednilson, já somos!! Linux é top d+. Precisando só chamar. tmj, Abr.
Bom dia Rafael,
Você pode disponibilizar a senha do post samba 4 + debian 9?
Fala Wesley blz? Falei com vc la no linkedin!
Abr.