Executando scripts na inicialização do Debian/Ubuntu

Executando scripts na inicialização do Debian/Ubuntu

Muitas vezes desejamos executar algum comando ou iniciar serviços na inicialização do Sistema Operacional. É muito simples executar essa operação usando o Debian ou o Ubuntu.
Veja abaixo um passo-a-passo e um exemplo usando uma instalação manual do Servidor WEB Apache.
Todos os comandos precisam ser executados como root.
Primeiramente, vamos criar um script chamado meuScript em /etc/init.d com uma estrutura semelhante à abaixo:
#!/bin/bash
#
# /etc/init.d/meuScript
 
case "$1" in
    start)
        echo "Iniciando serviço..."
        # comando para iniciar o serviço
        ;;
 
    stop)
        echo "Parando serviço..."
        # comando para parar o serviço
        ;;
 
    restart)
        echo "Reiniciando serviço..."
        # comando para reiniciar o serviço
        ;;
 
    *)
        echo "Operação inválida"
        ;;
esac
Dê permissão de execução para o script:
# chmod +x meuScript
A partir desse momento você já pode executar os comandos abaixo:
# /etc/init.d/meuScript start
# /etc/init.d/meuScript stop
# /etc/init.d/meuScript restart
Para inserir o script na inicialização do sistema, usamos o comando update-rc.d da seguinte maneira:
# update-rc.d meuScript defaults
O “meuScript” é o nome do script em /etc/init.d, não o caminho completo a ele, ou seja, não importa em qual diretório você está, apenas coloque o nome do script.
O “defaults” indica que desejamos inserir o script nos runlevels padrões do sistema.
Ao executar esse comando, um warning será mostrado, apesar de o comando ter funcionado. Aparecerá uma mensagem como esta:
update-rc.d: warning: /etc/init.d/meuScript missing LSB information
update-rc.d: see <http://wiki.debian.org/LSBInitScripts>
Você pode ignorá-lo ou inserir as informações de LSB, o que é mostrado no link exibido no warning. É algo bem simples. =)
Para remover um script da inicialização:
# update-rc.d -f meuScript remove
Como prometi, vou mostrar um exemplo que uso para uma instalação manual do Apache:
#!/bin/bash
#
# /etc/init.d/apache2 
 
### BEGIN INIT INFO
# Provides:          apache2
# Required-Start:    $local_fs $syslog
# Required-Stop:     $local_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start Apache at boot
# Description:       Start Apache HTTP Server
### END INIT INFO
 
# Path to Apache controller
BIN=/usr/local/apache2/bin/apachectl
 
function startApache()
{
 echo "Starting Apache..."
 $BIN start
}
 
function stopApache()
{
 echo "Stopping Apache..."
 $BIN stop
}
 
case "$1" in
 start )
  startApache
  if [ $? -eq 0 ]
  then
   echo "OK."
  fi
 
  ;;
 
 
 stop )
  stopApache
  if [ $? -eq 0 ]
  then
   echo "OK."
  fi
 
  ;;
 
 restart )
  stopApache
  sleep 1
  startApache
  if [ $? -eq 0 ]
  then
   echo "OK."
  fi
 
  ;;
 
 
 * )
  echo "Invalid option"
  ;;
esac
The following two tabs change content below.

Close Menu