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:








