Oct 13

Inicialização automática de pacotes no sistema de boot Redhat Linux

Category: Red Hat

A iniciliazação automática de daemons no Redhat Linux pode ser feita de duas maneiras, pela inittab ou pelo /etc/rc.d utilizando script de execução.

Para isto basta adicionar a seguinte entrada em /etc/inittab

vi /etc/inittab
# Start automático daemonname
daemonname::once:/caminho/para/bin/daemon >/dev/null 2>&1

A segunda forma é através do /etc/init.d script

Criamos um script de inicialização em /etc/init.d/startdaemon

Com o contéudo abaixo:

#!/bin/bash
#
# chkconfig: – 91 35
# description: Starts and stops vncserver/integradorTXT

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /caminho/para/bin/startdaemon ] || exit 0

prog=”startdaemon”

export DAEMON_DIR=/caminho/para/bin
export DAEMON_CONFIG=/caminho/para/conf/startdaemon.conf # somente se necessário

start() {
echo -n $”Starting $prog: ”
cd $DAEMON_DIR
daemon $DAEMON_DIR/startdaemon
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/startdaemon
return $RETVAL
}

stop() {
if test “x`pidof startdaemon`” != x; then
echo -n $”Stopping $prog: ”
killproc startdaemon
echo
fi
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/startdaemon
return $RETVAL
}

case “$1″ in
start)
start
;;

stop)
stop
;;

status)
status startdaemon
;;
restart)
stop
start
;;
condrestart)
if test “x`pidof startdaemon`” != x; then
stop
start
fi
;;

*)
echo $”Usage: $0 {start|stop|restart|condrestart|status}”
exit 1

esac

exit 0

# eof

Depois setamos as permissões de execução

chmod 744 /etc/init.d/startdaemon

Agora colocamos o nosso serviço no inialização automática, isto pode ser feito manualmente ou automaticamente.

Se automaticamente:

/sbin/chkconfig –add startdaemon
/sbin/chkconfig –level 35 startdaemon on
/sbin/chkconfig –list startdaemon

Este comando criar todos os simbólicos links automáticamentes de acordo com os runlevels escolhidos.

Se manualmente:

cd /etc/rc.d/rc3.d
ln -s ../init.d/startdaemon S91startdaemon

cd /etc/rc.d/rc5.d
ln -s ../init.d/startdaemon S91startdaemon

cd /etc/rc.d/rc0.d
ln -s ../init.d/startdaemon K35startdaemon

cd /etc/rc.d/rc6.d
ln -s ../init.d/startdaemon K35startdaemon

cd /etc/rc.d/rc1.d
ln -s ../init.d/startdaemon K35startdaemon

Para testar as configurações digitamos os seguintes comandos:

* para start do daemon manualmente

service startdaemon start

* para stop do daemon manualmente

service startdaemon stop

* para restart do daemon manualmente

service startdaemon restart

* para verificar o status do daemon

service startdaemon status

ou

ps -ef | grep startdaemon

OBS.: Para que o start funcione durante do boot que init level do sistema assuma como default 3 ou 5.

cat /etc/inittab | grep initdefault
id:5:initdefault

Share this on Orkut!
Comments are off for this post

Comments are closed.