Arrancando servicios locales en OpenBSD
El sistema de arranque de BSD es notablemente distinto del de Linux, sobretodo la ejecución de programas en el arranque: los scripts rc
.
Aquí podemos distinguir entre System V init
, que usa mayoritariamente toda distribución de Linux (pero no todas, todas), y BSD init
, que usan los sistemas BSD.
No voy ha hacer un repaso de todos los rc
de que dispone OpenBSD, solo voy a centrarme en /etc/rc.local
.
Cuando instalamos un servicio mediante un port, por ejemplo, ese nuevo demonio no pertenece a la base del sistema y se considera un servicio local, que debe de ser lanzado desde rc.local
.
Antes de empezar a trabajar con OpenBSD pasé mucho tiempo administrando alguna máquina con FreeBSD, y en este otro sistema la instalación de servicios locales es muy sencilla: cada port deja un script de ejemplo en /usr/local/etc/rc.d/
, que convirtiéndolo a la extensión .sh
ejecutará con el argumento start
en cada arranque del sistema.
En OpenBSD esto no funciona así. Es rc.local
el encargado de arrancar los servicios.
Vamos a emplear como ejemplo MySQL. Para ello podemos seguir el esquema que plantean los desarrolladores del sistema. Para activar el servicio pondremos en /etc/rc.conf.local
:
# mysql=NO para desactivar mysql=""
Recordemos que en rc.conf.local
tendremos la configuración de nuestra máquina, mientras que en rc.conf
están los valores por defecto.
Ahora solo hay que añadir en rc.local
el código necesario para que arranque nuestro servicio cuando haga falta:
if [ X"${mysql}" != X"NO" -a -x /usr/local/bin/safe_mysqld ]; then echo -n " mysqld"; /usr/local/bin/safe_mysqld $mysql --user=mysql \ > /dev/null & fi
Este código se situará entre el mensaje de starting local daemons: y el echo '.'
final.
De esta forma hemos integrado el servicio de MySQL en el sistema de arranque de OpenBSD. Si deseamos pasar parámetros a MySQL, como por ejemplo deshabilitar el TCP/IP, pondríamos en rc.conf.local
:
# mysql=NO para desactivar mysql="--skip-networking"
A la hora de detener los procesos es más complicado que cuando contamos con scripts que aceptan start
, stop
e incluso reload
. En el caso de MySQL haremos un:
# mysqladmin -u root -p shutdown
Para la mayoría de procesos bastará con buscar en /var/run
su pid
y mandarle un kill(1)
con -HUP
si queremos que recargue la configuración o -TERM
si queremos que finalize su actividad.
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.