Como funcionan los runlevel del sistema
Como funcionan los runlevel del sistema GNU/Linux
El runlevel (del inglés, nivel de ejecución) es cada uno de los estados de ejecución en que se puede encontrar el sistema GNU/Linux.El sistema se carga según la configuración que tenga establecida, y según el runlevel que tenga, se cargara el sistema de una manera u otra.
Visto de forma simple, los runlevel determinan qué programas se ejecutan al inicio del sistema.
- 0 » Apagado del sistema
- 1 » Modo monousuario
- 2 » Modo multiusuario (Por defecto)
- 3-5 » Igual que runlevel 2
- 6 » Reinicio del sistema
- El runlevel 0 es la condición de apagado del sistema. La mayoría de ordenadores actuales se apagarán al llegar a este nivel.
- El 1 es conocido como de monousuario o usuario único. Suele llamarsele modo de rescate (rescue mode ó trouble-shooting). En este nivel no se ejecuta ningún servicio o demonio. Normalmente es posible iniciar el sistema en modo rescate desde el GRUB, o añadiendo la palabra single al final de la línea de comandos del kernel.
- Del runlevel 2 al 5 son modos multiusuario, y el modo usado por defecto.
- Si el 0 era la condición de apagado, el 6 es la señal de reinicio del sistema. Es exactamente igual que el runlevel 0 salvo que reinicia al terminar la secuencia en lugar de apagar.
¿Dónde residen los Run Level?
Como todo en un sitema Linux, están definidos mediante ficheros, y se encuentran bajo el directorio/etc
:/etc/rc0.d Run level 0
/etc/rc1.d Run level 1
/etc/rc2.d Run level 2
/etc/rc3.d Run level 3
/etc/rc4.d Run level 4
/etc/rc5.d Run level 5
/etc/rc6.d Run level 6
Veamos el contenido del runlevel 2:
total 4
-rw-r--r-- 1 root root 677 Apr 6 2015 README
lrwxrwxrwx 1 root root 14 Jan 31 2017 S01motd -> ../init.d/motd
lrwxrwxrwx 1 root root 17 Jan 31 2017 S01rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 19 Jan 31 2017 S06rmnologin -> ../init.d/rmnologin
lrwxrwxrwx 1 root root 18 Jan 31 2017 S06rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root 18 Jan 31 2017 S05bootlogs -> ../init.d/bootlogs
lrwxrwxrwx 1 root root 13 Jan 31 2017 S03ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 15 Jan 31 2017 S03rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 16 Jan 31 2017 S03gdomap -> ../init.d/gdomap
lrwxrwxrwx 1 root root 14 Jan 31 2017 S03dbus -> ../init.d/dbus
lrwxrwxrwx 1 root root 14 Jan 31 2017 S03cron -> ../init.d/cron
lrwxrwxrwx 1 root root 13 Jan 31 2017 S03atd -> ../init.d/atd
lrwxrwxrwx 1 root root 15 Jan 31 2017 S03acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 17 Jan 31 2017 S02apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 15 Jan 31 2017 S04exim4 -> ../init.d/exim4
lrwxrwxrwx 1 root root 15 Jan 31 2017 S03mysql -> ../init.d/mysql
lrwxrwxrwx 1 root root 13 May 2 2017 S03ntp -> ../init.d/ntp
lrwxrwxrwx 1 root root 18 Jan 19 16:56 S03iptables -> ../init.d/iptables
Cada fichero es un enlace simbólico a su respectivo script residente en
/etc/init.d
. Estos scripts controlan la detención o inicio de un servicio.El nombre de los enlaces de estos directorios puede ser poco intuitivos al principio, pero veamos su significado, la sintaxis es:
[K | S] + nn + [string]
Es decir, la primera letra del nombre puede ser una K o una S, seguidas de un número de dos dígitos, del 01 al 99 y por último una
cadena de texto. La K significa que el servicio será detenido al entrar al runlevel (Kill), la S para iniciarlo (Start). El número indica la
prioridad del servicio dentro del runlevel, por ejemplo, S02apache y S01php iniciará primero php y luego apache. Si dos servicios tienen el mismo
orden de prioridad numérico, se procede en orden alfabético.
Para saber en que nivel o runlevel estamos, deberemos de escribir:
Cómo agregar un servicio a un runlevel
# runlevel
Si deseamos agregar un servicio a un runlevel deberemos usar el comando update-rc.d. Por ejemplo, si quieres que nginx o Apache se ejecuten en cada inicio del sistema, basta con agregarlos a los runlevel 2-5, correspondientes al modo multiusuario:
# update-rc.d nginx start 90 2 3 4 5 . stop 01 0 1 6 .
El 90 es el número de prioridad para el inicio (S90nginx) aplicado a los runlevles 2-5, el 01 para la prioridad de detención (K01nginx) en los runlevel 0 1 y 6. Lo más sencillo es aplicar los valores por defecto con:
# update-rc.d lighttpd defaults
Comentarios
Publicar un comentario