Arranque de demonios o servicios

17 September, 2008 Posted by ramso

Para poder arrancar procesos en modo servidor hay que crear un pequeño script que inicie los scripts en /opt/etc/init.d. Para esto lo primero es tener un dispositivo de almacenamiento montado en opt e ipkg instalado.

Empecemos por crear un script de nombre rc.unslug en /opt/etc/init.d y lo editamos para añadir lo siguiente

#! /bin/sh
# Start/stop all init scripts in /opt/etc/init.d
# starting them in numerical order and
# stopping them in reverse numerical order
#
if [ $# -ne 1 ]; then
 printf "Usage: $0 {start|stop}\n" >&2
  exit 1
fi
daemons=`echo $(/usr/bin/dirname $0)/S??*`
[ $1 = "stop" ] && daemons=`echo $daemons | /usr/bin/tr " " "\n" | /usr/bin/sort -r`
for i in $daemons; do
     # Ignore dangling symlinks (if any).
     [ ! -f "$i" ] && continue
     # Write to syslog
     logger -t rc.unslung "$1 service $i"
     case "$i" in
        *.sh)
            # Source shell script for speed.
            (
                trap - INT QUIT TSTP
                set $1
                . $i
            )
            ;;
        *)
            # No sh extension, so fork subprocess.
            $i $1
            ;;
    esac
done

ahora hay que hacerlo ejecutable

chmod +x /op/etc/init.d/rc.unslug

Ahora hay que hacer que se ejecute en el arranque y en la parada del router. Para esto editamos el fichero post-mount en /usr/local/sbin  y lo rellenamos con

#! /bin/sh
/opt/etc/init.d/rc.unslung start

Ahora editamos el fichero pre-shutdown en /usr/local/sbin para detener los servicios y proteger los discos cuando reiniciemos el router. Para eso añadimos

#! /bin/sh
/opt/etc/init.d/rc.unslung stop
sleep 10s
for i in `cat /proc/mounts | awk '/ext3/{print($1)}'` ; do
 mount -oremount,ro $i
done
swapoff -a
sleep 1s

Bien con esto se acaba, ahora lo de siempresalvar y reiniciar

 flashfs save && flashfs commit && flashfs enable && reboot

Todos los scripts que hay aquí los he cogido de este hilo en el foro, y la verdad son bastante mejores que los que yo escribí, así que muchas gracias al usuario que los creo

Related posts:

  1. Primeros pasos
  2. Configurar el Firewall
  3. Preparar Almacenamiento
  4. ipkg – Gestión de paquetes

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>