Slacktrek Linux

um blog sobre linux, software livre, shell script e afins

Debian rc.local - Iniciando com o sistema

30 de dez de 2023 — SlackTrekBr

Uma das grandes controvérsias no mundo Linux se da em volta no init SystemD.
Alguns o acusam de querer centralizar todas as funções de aplicativos dedicados, como formatar e inicializar discos rígidos, além do que seriam suas atribuições iniciais, as de carregar o sistema e processos básicos para uma distro Linux poder ser utilizada.


Um desses processos seria o de carregar programas na sua inicialização, coisa que inits mais antigos faziam através de um arquivo de texto chamado rc.local com os comando listados ali em ordem de execução.

No Debian, especificamente, não há mais um arquivo rc.local ou um chamado que o carregue na inicialização. Uma das opções, que será demonstrada neste post, é a de criar o arquivo e a instrução para o que SystemD o carregue como um serviço durante a inicialização.

Primeiramente criamos o rc.local propriamente dito, colocando-o na pasta correspondente às instruções e configurações quando são buscadas ao carregar o sistema, ou seja, /etc, e nele colocaremos o seguinte:

  nano /etc/rc.local
--------------------------------------------------
  #!/bin/sh -e
  #
  # rc.local
  #
  # This script is executed at the end of each multiuser runlevel.
  # Make sure that the script will "exit 0" on success or any other
  # value on error.
  #
  # In order to enable or disable this script just change the execution
  # bits.
  #
  # By default this script does nothing.

  exit 0
--------------------------------------------------

Agora precisamos marcar o arquivo como executável.

chmod +x /etc/rc.local

E por fim criar o serviço para o init carregá-lo.

  nano /etc/systemd/system/rc-local.service
--------------------------------------------------
  [Unit]
  Description=/etc/rc.local Compatibility
  ConditionPathExists=/etc/rc.local

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

 [Install]
  WantedBy=multi-user.target
--------------------------------------------------

De resto é só iniciar e habiliar o serviço como qualquer outro do SystemD.

Como executar processos ao iniciar o Debian e outras distros Linux com systemD.
Como executar processos ao iniciar o Debian e outras distros Linux com systemD.
0.5

Tags: systemd, linux, macetes