Tenho visto que muita gente tem dificuldade na hora de colocar um serviço pra rodar na inicialização do linux, bom vou mostrar abaixo um exemplo bem simples de um script e como adicioná-lo no inicialização automática das distros equivalentes ao redhat.
Abaixo segue o script para inicialização do msn-proxy como exemplo, que foi compilado e instalado na mão, portanto não cria o script de inicialização no init do sistema.
#!/bin/sh
start (){
echo "Iniciando o MSN-Proxy"
/usr/local/bin/msn-proxy -b >> /dev/null
}
stop (){
echo "Finalizando o MSN-Proxy"
pkill -9 msn-proxy >> /dev/null
}
case "$1" in
start) start
;;
stop) stop
;;
*) echo "Uso: msn-proxy (startstop)"
;;
esac
Bom, mostrado o script acima agora vamos colocar ele pra inicializar automático.
Em primeiro lugar, existe uma pasta padrão nas distros derivadas do redhat onde devemos colocar os scripts, chamada init.d
Segue o caminho dela abaixo:
/etc/rc.d/init.d
Vamos copiar o script pra lá então:
[root@centos ~]# cp msn-proxy /etc/rc.d/init.d
Agora que copiamos, vamos adicionar o serviço no sistema com o comando chkconfig usando a seguinte sintaxe abaixo:
[root@centos ~]# chkconfig --add msn-proxy
O Serviço não suporta o chkconfig
Ops, acho que deu problema, porque será que o chkconfig não quer adicionar meu script. Bom, pesquisando na internet descobri que o chkconfig usa duas linhas de comentários para poder ser instalado, informando os runlevels e a descrição do sistema.
Aqui estão as duas linhas que você precisa informar em seu arquivo de inicialização:
# chkconfig: 345 99 10
# description: Msn-proxy
Agora vamos ao script novamente:
#!/bin/sh
# chkconfig: 345 99 10
# description: Msn-proxy
start (){
echo "Iniciando o MSN-Proxy"
/usr/local/bin/msn-proxy -b >> /dev/null
}
stop (){
echo "Finalizando o MSN-Proxy"
pkill -9 msn-proxy >> /dev/null
}
case "$1" in
start) start
;;
stop) stop
;;
*) echo "Uso: msn-proxy (startstop)"
;;
esac
Bom, agora sim vamos ao comando chkconfig
[root@centos ~]# chkconfig --add msn-proxy
Hum, agora sim deu certo, hehehe
Agora depois de adicionado ao sistema, vamos ativá-lo para inicializar, você pode fazer isso usando o comando abaixo:
[root@centos ~]# chkconfig msn-proxy on
ou escolher apenas o runlevel que quizer
[root@centos ~]# chkconfig --level 235 msn-proxy on
Para ter certeza que o serviço está instalado e em qual modo vai inicializar use o comando abaixo:
[root@centos ~]# chkconfig --listgrep msn-proxy
Pronto, agora sabemos como adicionar qualquer script na inicialização de distribuições derivadas do redhat usando o chkconfig.
[update]: 21/11/08- Uma colaboração do nosso colega Yucatan (Kenjiro)
Nem todas as distribuições Linux existentes utilizam o esquema de inicialização derivado do System V UNIX, o Slackware utiliza o conceito do BSD UNIX.
Blog com conteúdo sobre os projetos que tenho trabalhado: SEGURANÇA DA INFORMAÇÃO, VOIP COM ASTERISK, VIRTUALIZAÇÃO DE SERVIDORES VMWARE SERVER, ESX, EMAIL, FIREWALL, WEB-PROXIES, VPN, MIGRAÇÕES, LDAP, SAMBA, AD, ORACLE, MySQL, RADIUS, DHCP, DNS, PHP, C++, AUTENTICAÇÃO WIFI, CAPTIVEPORTAL, SATELITE, NETWORK...
Pesquisar neste blog
Assinar:
Postar comentários (Atom)
7 comentários:
Ae doutor! Nunca esquecendo que esse tipo de inicialização (via init.d) não rola em TODAS as distribuições. Só nas que são baseadas em Sys V.
Sim, o Slackware (e afins) desde a versão 12.1 tem o diretório init.d, porém não é padrão usá-lo. Bem como não existe o chkconfig.
A tua dica é totalmente válida, claro, mas ficam aí meu R$0,02 para alertar aqueles que costumam seguir à risca os tutorias que acham na internet ;)
Cara...
Parabéns pelo comentário...
ficou muito claro
Anderson Rodrigo.
Até que enfim achei alguem para resolver meu problema.
Valeuu!!!!
Muito bomm , resolveu meu problema
Que bom Reginaldo, fico feliz em poder ajudar. No que precisar estamos ai.
Grande Abraço.
Otimo artigo. Uso Mandriva e fiz conforme esta descrito e funcionou muito bem. Obrigado....
Muito obrigado pela dica. Ajudou bastante.
Postar um comentário