Arrancando servicios locales en OpenBSD (y 2)
Pensando en lo que comenté acerca de arrancar servicios locales en OpenBSD, he caido en la cuenta de que no sería nada complicado implementar un sistema para lanzar servicios como el que emplea FreeBSD. Así no hay escusas: use OpenBSD y hágaselo usted mismo ;).
Claro que no tendremos los scripts de ejemplo que nos proporcionan los encargados de cada port como pasa en FreeBSD, pero partiendo de una plantilla bastante sencilla podremos solucionar el problema más o menos con comodidad.
La base de nuesto nuevo mecanismo de arranque para servicios locales es el siquiente fichero rc
, que podríamos poner, por ejemplo, dentro de /etc/rc.d/
:
RC_D="/etc/rc.d" for service in $RC_D/*.sh; do if [ -x $service ]; then $service start fi done # EOF
Como se puede ver, en la variable RC_D
tenemos que especificar el directorio donde estarán los scripts para arrancar los servicios (/etc/rc.d/
en este caso).
Se intentará ejecutar todos los ficheros terminados en .sh
y que tengan permisos de ejecución dentro del directorio especificado por RC_D
.
Para activar el script simplemente añadimos antes del echo '.'
que encontramos al final de /etc/rc.local
las siguientes lineas:
# arranca servicios locales . /etc/rc.d/rc
Y con eso ya se incluiría nuestro rc en rc.local
, ejecutándose en cada arranque de sistema.
Ahora solo falta preparar los scripts que queramos que se ejecuten. Siguiendo el ejemplo de MySQL:
#!/bin/sh # este es mysql.sh # parametros para el servicio PARAMS="" # nombre del servicio SERVICE="mysql" # el demonio a arrancar DAEMON="/usr/local/bin/safe_mysqld" # como se pone en marcha el servicio START="$DAEMON $PARAMS --user=mysql > /dev/null &" # como se detiene el servicio STOP="mysqladmin -u root -p shutdown" case $1 in start) if [ -x $DAEMON ]; then echo -n " $SERVICE"; $START exit $? fi ;; stop) echo -n " stopping $SERVICE: "; $STOP [ $? -eq 0 ] && echo "done" exit $? ;; restart) $0 stop || $0 start exit $? ;; *) echo "usage: $0 (start|stop|restart)" ;; esac exit 1 # EOF
Los comentarios explican las variables del principio del script. Ojo que hay que poner permisos de ejecución al script (chmod +x /etc/rc.d/mysql.sh
), y listos :).
Si queremos deshabilitar un servicio, pues con chmod -x
le quitamos los permisos de ejecución y en el siguiente arranque no se ejecutará.
Cuidado que esto lo he hecho en diez minutos, no garantizo nada de nada de nada. Si no hay problemas, pues bien :D. Sino, se agradecen comentarios.
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.