jueves, 19 de enero de 2012

Arranque de un servicio al iniciar el sistema en RHEL

Para que se lance un proceso al arrancar el sistema, necesitamos incluir como servicio este proceso en /etc/init.d/ con el nombre que queramos (en mi caso este proceso sera prueba) y generándolo siempre como root.

Un ejemplo de como sería el esqueleto para crear un servicio es el siguiente:

 #! /bin/sh
set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:directorio donde esten los ejecutables que haga el starServer, stopServer
DESC="descripción entre comillas"
NAME=nombre del servio
STARTUP=ruta completa incluyendo el ejecutable de arranque
SHUTDOWN=ruta completa incluyendo el
ejecutable de parada
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
USER=usuario con el que se va a lanzar

test -x $DAEMON || exit 0

d_start() {
       su $USER $STARTUP || echo -n " already running"
}
d_stop() {
       su $USER $SHUTDOWN || echo -n " not running"
}
case "$1" in
 start)
       echo -n "Starting $DESC: $NAME"
       d_start
       echo "."
       ;;
 stop)
       echo -n "Stopping $DESC: $NAME"
       d_stop
       echo "."
       ;;
 reload|restart|force-reload)
       echo -n "Restarting $DESC: $NAME"
       d_stop
       sleep 10
       d_start
       echo "."
       ;;
 *)
       echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
       exit 3
       ;;
esac
exit 0


Tras generarlo le asignamos permisos de ejecución de la siguiente manera (siempre como root):

-bash-3.2$ chmod 755 prueba

Si hacemos un ls -ltr quedaría con los permisos:

-rwxr-xr-x 1 root root  1547 ene 19 12:23 PRUEBA

Con esto ya tendríamos un servicio que arranque nuestro proceso. Para poderlo arrancar sería tan fácil como hacer dentro del directorio /etc/init.d/
un:

-bash-3.2$ ./prueba start
-bash-3.2$ ./prueba stop

Ahora para incluirlo en el arranque del sistema utilizamos el comando chkconfig como root de la siguiente manera :

-bash-3.2$ chkconfig --add prueba  --level 2345

Esto lo incluye en el arranque del sistema para los niveles de arranque 2, 3, 4 y 5.

No hay comentarios:

Publicar un comentario