Categorias
Tutoriais

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.

Por Rodrigo Leutz

Usuário do Linux há mais de 20 anos.
Desenvolvedor Web e Android ( Kotlin e Java ).
Membro da equipe de suporte do sempreupdate.

Sair da versão mobile