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:
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.
Social