Como criar rc.local dentro da systemd

Como criar rc.local dentro da systemd
Como criar rc.local dentro da systemd

Às vezes nos deparamos com problemas para colocar algum aplicativo ou comando para rodar na inicialização do sistema operacional e nem sempre temos estes aplicativos como service. Então, resolvi escrever este tutorial de como criar rc.local dentro da systemd.

Este tipo de abordagem é muito utilizada no slackware, pois utiliza uma init diferente, e como utilizei em minha vida muito Slackware, então, às vezes, acredito ser mais fácil colocar as aplicações para rodar desta forma quando o computador é iniciado.

No Slackware ele já tem como padrão uma rc.local em sua init para que assim sejam colocadas aplicações para rodar quando é inicializado.

Systemd 246 será lançado em breve com muitas mudanças

Então, mãos a obra.

Criando service na systemd

Primeiramente, vamos criar o nosso service dentro da systemd e para isso vamos criar o arquivo rc-local.service da seguinte forma.

sudo nano /etc/systemd/system/rc-local.service

E vamos adicionar as seguintes linhas ao arquivo que estamos editando.

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local
# Descomente linha abaixo para 
# iniciar depois de conectado
# After=network-online.target

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Podemos ver que nas linhas que adicionamos acima tem a linha After=network-online.target que está comentada. Portanto, se você desejar que o script inicie após a rede estar conectada será necessário descomentar a linha, o que significa retirar o # da frente.

Com o nosso service dentro da systemd criado chegou a hora de assim criar o script que irá receber os comandos que vão ser executados na inicialização.

Para isso vamos editar o arquivo rc.local da seguinte forma.

sudo nano /etc/rc.local

E vamos inserir as linhas a seguir para que nosso script funcione.

#!/bin/bash

# Comandos aqui abaixo antes do “exit 0”

 

exit 0

Vamos então transformar o arquivo rc.local em executável.

sudo chmod +x /etc/rc.local

Habilitando service

Então com nossos arquivos criados agora chegou a hora de habilitar o serviço na systemd e para isso vamos utilizar o comando.

sudo systemctl enable rc-local

Se você desejar desabilitar o serviço precisa apenas digitar.

sudo systemctl disable rc-local

Enfim, espero poder ter ajudado com este tutorial de como criar rc.local dentro da systemd e você consiga executar em sua inicialização o comando desejado.