Bajo el esquema conocido como SystemV y que presentamos en el post anterior, el proceso padre de todos los demás se denomina init y siempre recibe el PID 1. Es init el que se encarga de levantar los servicios indicados por los enlaces simbólicos presentes en /etc/rcN.d (donde recordemos que N es un número entero entre 1 y 5) al iniciar el sistema. Esto se hace en el orden determinado por el número presente en el nombre del enlace y es uno de los aspectos fundamentales de la administración de servicios en SystemV.
Servicios en SystemV
Veamos en la Fig. 1 el contenido de /etc/rc3.d y consideremos los números que forman parte del nombre de los enlaces simbólicos. En particular, prestemos atención a S10network, S55sshd, y S80postfix:
En este caso, estos tres servicios serán iniciados en el siguiente orden:
- S10network (servicio de red)
- S55sshd (servidor SSH)
- S80postfix (servidor de correo)
Lo cual tiene sentido, porque no tendría sentido que el servidor de SSH o el de correo estuvieran disponibles ANTES de que el servicio de red haya inicializado las interfaces de conexión. En cada runlevel (sea en el ambiente de texto o gráfico) se aplica la misma lógica: primero se inician los servicios fundamentales y luego aquellos que dependen de los primeros para su correcto funcionamiento.
Ejecutar y detener servicios en SystemV manualmente
Como vimos en el post anterior, los enlaces simbólicos en /etc/rcN.d apuntan a scripts ubicados en /etc/init.d. La mayoría de dichos scripts aceptan los siguientes parámetros (uno a la vez) y algunos otros:
start
para iniciar manualmente el servicio indicadorestart
para reiniciarlo (generalmente luego de haber cambiado algún aspecto de la configuración)stop
para detenerlo
Dentro de estos scripts, las acciones mencionadas arriba son manejadas por una sentencia case que indica los pasos a seguir de acuerdo al parámetro. En la Fig. 2 podemos ver el caso de S80postfix como ejemplo:
De esta forma, los siguientes comandos pueden utilizarse para detener manualmente o iniciar el servidor de correo, respectivamente:
[pastacode lang=»bash» manual=»%2Fetc%2Finit.d%2Fpostfix%20stop%0A%2Fetc%2Finit.d%2Fpostfix%20start» message=»» highlight=»» provider=»manual»/]
En el próximo post mostraremos cómo habilitar o deshabilitar servicios en un nivel de corrida dado. ¡Nos vemos ahí!