Script de arranque/parada de Asterisk en (open)SuSE

Intro:

Debido a la relativamente gran respuesta que tuve de la Asterisk-Users List despues de la publicación del script que modifiqué en SuSE Linux para arrancar/parar Asterisk automaticamente, decidí publicarlo en vez de mandarlo por email cada vez que me lo pedian  :-)

Nota: Publiqué este script en 2004 y no he usado muchi Asterisk PBX en openSUSE desde entonces asi que confío en que funcionará en tu sistema con ninguna o alguna pequeña modificación.

El Script:

 #!/bin/sh
 #
 # asterisk       This shell script takes care of starting and stopping Asterisk.
 #
 # 08.Sept.2004 - Modified to be used on a SuSE Linux system by Martin Mielke.
 #                Please, send your comments/flames/salary increases/geek t-shirts, etc
 #		   to <martin at mielke dot com>
 #
 #
 # Source function library.
 # Shell functions sourced from /etc/rc.status:
 #      rc_check         check and set local and overall rc status
 #      rc_status        check and set local and overall rc status
 #      rc_status -v     ditto but be verbose in local rc status
 #      rc_status -v -r  ditto and clear the local rc status
 #      rc_failed        set local and overall rc status to failed
 #      rc_failed <num>  set local and overall rc status to <num><num>
 #      rc_reset         clear local rc status (overall remains)
 #      rc_exit          exit appropriate to overall rc status
 . /etc/rc.status 

 ASTERISK_BIN=/usr/sbin/asterisk
 ASTERISK_LOCK=/var/lock/subsys/asterisk
 ASTERISK_PID=/var/run/asterisk.pid
 ASTERISK_OPTS="-nqg"	# -n: Disable console colorization
 # -q: Quiet mode (supress output)
 # -g: Dump core in case of a crash 

 [ -f $ASTERISK_BIN ] || exit 0 

 RETVAL=0 

 # See how we were called.
 case "$1" in
 start)
 # Start daemons.
 echo -n "Starting Asterisk PBX: "
 startproc $ASTERISK_BIN $ASTERISK_OPTS
 RETVAL=$?
 [ $RETVAL -eq 0 ] && touch $ASTERISK_LOCK
 rc_status -v
 ;;
 stop)
 # Stop daemons.
 echo -n "Shutting down Asterisk PBX: "
 killproc asterisk
 RETVAL=$?
 rc_status -v
 [ $RETVAL -eq 0 ] && rm -f $ASTERISK_LOCK
 ;;
 status)
 echo -n "Checking for service Asterisk PBX: "
 /sbin/checkproc -p $ASTERISK_PID $ASTERISK_BIN
 rc_status -v
 ;;
 restart|reload)
 $0 stop
 $0 start
 RETVAL=$?
 rc_status -v
 ;;
 *)
 echo "Usage: asterisk {start|stop|restart|reload|status}"
 exit 1
 esac 

 exit $RETVAL

Como instalar:

Aunque asumo que ya sabes cómo instalar un script asi en tu sistema, recibí algunos emails de gente sin mucha experiencia en Linux, así que espero encuentres esta información de utilidad… :-)

Sigue estos pasos:

Conviertete en root:

$ su -l

Password: [aqui-tu-passwd-de-root]

Guarda el script como /etc/init.d/asterisk

Crea un link simbólico desde /etc/init.d/rc3.d a él para que Asterisk arranque al iniciar el sistema

# cd /etc/init.d/rc3.d

# ln -s ../asterisk S90asterisk

Crea un link simbólico desde /etc/init.d/rc0.d a él para detener Asterisk al apagar el sistema

# cd /etc/init.d/rc0.d

# ln -s ../asterisk K10asterisk

Cómo usarlo:

Una vez instalado, si deseas arrancar/parar Asterisk manualmente, convierte en root y teclea:

/etc/init.d/asterisk  [tu-opción]

donde ‘tu-opción’ puede ser una de las siguientes:

start: para arrancar the Asterisk PBX

stop: para detener the Asterisk PBX

status: para comprobar el estado de Asterisk PBX

restart: To restart the Asterisk PBX

Advertencia

Este script se ofrece a la Comunidad Asterisk “TAL CUAL”. El autor no será responsable de cualquier daño causado debido a su uso.

Por favor, contacta conmigo si crees que el script necesita actualización.