Estava configurando um script para inicialização do rsync em um CentOs e tive a ideia de coloca-lo como serviço e inicializa-lo através do chkconfig. Porém, vi que não dá para simplesmente adicioná-lo no chkconfig. Após pesquisas na internet, consegui fazer funcionar da seguinte forma.
Primeiramente, devemos criar o script
#!/bin/bash
#Script criado para automatização do rsync na inicialização
# Biblioteca de funcoes
. /etc/rc.d/init.d/functions
PROG='/usr/bin/rsync'
BASE=${0##*/}
# O arquivo de configuracao do rsync tem que conter a linha abaixo:
# pid file = /var/run/rsync.pid
OPTIONS="--daemon"
case "$1" in
start)
echo -n $"Inicializando $BASE: "
daemon $PROG $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$BASE
echo
;;
stop)
echo -n $"Finalizando $BASE: "
killproc $PROG
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$BASE
echo
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
status)
status $PROG
;;
*)
echo "Usage: $0 {start|stop|restart|status|force-reload}" >&2
exit 1
;;
esac
Salvei o script chamado rsync na pasta /etc/init.d, que nos derivados Red Hat, é aonde se localizam os scripts de serviços do sistema. Feito isso, vamos adicionar o serviço no chkconfig conforme comando abaixo:
[root@matrix ~]# chkconfig --add rsync
O Serviço não suporta o chkconfig
O erro acima acontece porque, para o chkconfig identificar o script é necessário haver duas linhas comentadas no script, segue abaixo:
#!/bin/bash
# chkconfig: 345 55 10
# description: rsync
#Script criado para automatização do rsync na inicialização
# Biblioteca de funcoes
. /etc/rc.d/init.d/functions
PROG='/usr/bin/rsync'
BASE=${0##*/}
# O arquivo de configuracao do rsync tem que conter a linha abaixo:
# pid file = /var/run/rsync.pid
OPTIONS="--daemon"
case "$1" in
start)
echo -n $"Inicializando $BASE: "
daemon $PROG $OPTIONS
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$BASE
echo
;;
stop)
echo -n $"Finalizando $BASE: "
killproc $PROG
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$BASE
echo
;;
restart|force-reload)
$0 stop
sleep 1
$0 start
;;
status)
status $PROG
;;
*)
echo "Usage: $0 {start|stop|restart|status|force-reload}" >&2
exit 1
;;
esac
Com as duas linhas adicionadas no script é só rodar o comando novamente como segue abaixo:
[root@matrix ~]# chkconfig --add rsync
Feito isso, agora é só ativa-lo na inicialização com o comando abaixo:
[root@matrix ~]# chkconfig rsync on
Ou apenas selecionando o run level desejado:
[root@matrix ~]# chkconfig --level 235 rsync on
Depois é só inicializar o serviço com o comando abaixo:
[root@matrix~]# service rsync start
E para finalizar, segue a explicação para às linhas adicionadas para que o script funcionasse
# chkconfig: 345 55 10
| | |
| | prioridade para dar kill nos scripts
| |
| | prioridade para inicialização dos scripts
|
run levels para inicializaçãodo serviço
Acho que eras isso, have a nice day =D
Nenhum comentário:
Postar um comentário