Debian rc.local - Iniciando com o sistema
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.