Como adicionar script na inicialização do Linux com SystemD.

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

Você pode compartilhar esse artigo.

Siga o Blog Via E-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 46 outros assinantes

Sobre o Autor

Rafael Oliveira Maria - Linux

Rafael Oliveira

Bacharel em Sistemas de Informação, SysAdmin, Professor, Blogueiro e Entusiasta Linux.

Certificados:

LPIC-1-Large
LPIC-2
LinuxPlus Logo Certified
itil-foundation-digital-badge

Gostou do conteúdo? Ajude-me a manter o blog.

PicPay - Linux

Aceitamos pagamentos e doações via PicPay link picpay.me/rafaeloliveimar

4 respostas

  1. 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

Ficou com dúvida? Alguma Sugestão ou Elogio? Deixe seu comentário!