init (rc.local)

rc.local organizado

Categoria: Init

Software: init

[ Hits: 10.186 ]

Por: Ruan


Esse é meu rc.local que utilizo há anos no Slackware. Deixo aqui para quem quiser usar e adaptar.


#!/bin/sh
#
# /etc/rc.d/rc.local:  Local system initialization script.
#
# Put any local startup commands in here.  Also, if you have
# anything that needs to be run at shutdown time you can
# make an /etc/rc.d/rc.local_shutdown script and put those
# commands in there.

# Os serviços são colocados na variável RC.
# Especifique aqui o nome do serviço sem o "rc."
# Esse são os meus serviços locais que uso atualmente
RC=(postgresql vboxdrv)
RC_DIR=$(dirname $0)

for ((i = 0; i <= ${#RC[@]} - 1; i += 1)); do
  if [ -x ${RC_DIR}/rc.${RC[i]} ]; then
    $RC_DIR/rc.${RC[i]} start
  fi
done
  


Comentários
[1] Comentário enviado por lcavalheiro em 05/03/2014 - 10:56h

Tudo bem, mas não era mais fácil mandar um chmod +x?

[2] Comentário enviado por ru4n em 05/03/2014 - 11:30h

Olá, @lcavalheiro

No Slackware, acontece que não basta só jogar um script rc na pasta rc.d, precisa, além de mandar a permissão de execução, fazer uma chamada do script em algum arquivo como o rc.local. Esse script é para organizar melhor os rcs do usuário, pois o modo tradicional eu acho muito bagunçado, ficar escrevendo diversos Ifs para chamar um grupo sequencial de scripts é uma tarefa repetitiva e pouco produtiva.

Com esse meu rc.local, a tarefa é mais automatizada; basta jogar seu script rc na pasta /etc/rc.d, mudar a permissão para 755 e colocar o nome do seu script na variável RC. Exemplo:

mv rc.meu_script /etc/rc.d
chmod 755 /etc/rc.d/rc.meu_script

Depois, no arquivo rc.local, adicionar o "meu_script" na variável RC:
/etc/rc.d/rc.local

RC=( meu_script )

Assim, o script vai ser chamado normalmente como um serviço de inicialização.

Abraços

[3] Comentário enviado por marcelo.helmers em 05/02/2015 - 11:36h

Ru4n,
Por favor, como poderia adaptar aquele meu script que acabou de me ajudar, para esse serviço de inicialização?
Obrigado mais uma vez!

[4] Comentário enviado por ru4n em 05/02/2015 - 13:13h

Olá Marcelo, boa tarde!

Esse rc.local é para a distribuição Slackware, não sei como funciona o sistema de inicialização dos Red Hats/Fedora. Você pode adaptar o script para que funcione no seu sistema, a não ser que o Fedora use o systemd para inicializar os serviços, aí é outro método para por seu script para inicializar.


Contribuir com comentário