Written by: thempra on 25/03/2011 @ 21:00
Algo con lo que muchos linuxeros estan acostumbrados a convivir, pero no llegan a interesarse mas a fondo, son los Runlevels, o niveles de ejecucion. La creencia de que GNU/Linux es un sistema que arranca, y en su proceso defondo negro con «un monton de letras blancas corriendo hacia arriba» , simplemente va lanzando de forma incompresible un montón de procesos, es lo que pretendemos desmitificar en este post y ver un poquito mas a fondo que es lo que realmente hace.
Existen varios niveles de ejecución, cada uno de ellos con una finalidad definida para cada momento, y en un entorno de trabajo adecuado al momento. Para implicar a cada uno de los runlevel existe el fichero /etc/inittab, donde también se explica de forma clara la definición de cada uno de ellos:
0 - halt (Do NOT set initdefault to this)
1 - Single user mode
2 - Multiuser, without NFS (The same as 3, if you do not have networking)
3 - Full multiuser mode
4 - unused
5 - X11
6 - reboot (Do NOT set initdefault to this)
Podemos averiguar en un momento determinado en que nivel de ejecución estamos, simplemente hemos de ejecutar el comando:
# runlevel
Rutas de lanzamiento
A la hora de iniciar o detener un demonio, hemos de meterlo en un nivel de ejecucion adecuado en base a la lista que hemos visto anteriormente. Se ha de crear un enlace simbolico en el directorio del runlevel en cuestion. Puediendo ser en rutas tales como /etc/rcX.d/ donde X determina el número de runlevel.
Por ejemplo, para generar un enlace a un demonio que se ejecutara en el nivel 5 , lo realizaremos en el directorio /etc/rc5.d/
Sintaxis de los lanzadores
A la hora de crear dichos enlaces, se ha de seguir una nomemclatura especifica, de esta forma dejaremos el sistema limpio y de forma profesional, para que el dia de mañana otro administrador pueda gestionarlo sin quebraderos de cabeza. La nomenclatura de estos enlaces se divide en tres partes, tipo de accion a ejecutar, orden de ejecucion respecto a otros en su mismo nivel, y nombre del demonio, siendo de la siguiente forma:
S<num><nombre demonio> (para iniciar el demonio apuntado por el enlace)
K<num><nombre demonio> (para parar el demonio apuntado por el enlace)
<num> es el orden en que se ejecutará; puede ir desde 00 hasta 99 (siendo 00 la máxima prioridad). Además puede haber varios con la misma prioridad. Veamos unos ejemplos para aclararlo:
Otros comandos
Es posible, que en determinadas circunstancias tengamos que eliminiar o restaurar ciertos demonios del sistema. Para ello existen dos comandos que nos facilitaran la tarea.
Para eliminarlo del arranque ejecutaremos:
# update-rc.d -f mysql remove
En cambio si lo que deseamos es incluirlo de nuevo, ejecutaremos:
# update-rc.d mysql defaults