¿Qué es un nivel de ejecución?

23 de septiembre de 2025

Un nivel de ejecución es un estado operativo predefinido de un sistema UNIX o Linux que determina qué servicios y procesos están disponibles después del arranque.

¿Qué es un nivel de ejecución?

¿Qué es Runlevel?

Un nivel de ejecución es un concepto en UNIX y Linux sistemas operativos que define un estado específico de la máquina al determinar qué procesos, servicios y recursos del sistema están activos. Actúa como marco para controlar el inicio y el apagado del sistema, lo que permite... administradores Para gestionar el entorno según las necesidades operativas. Cada nivel de ejecución corresponde a un modo específico, como el mantenimiento del sistema, la operación multiusuario basada en texto o la disponibilidad completa de la interfaz gráfica.

Al arrancar el sistema, este accede a un nivel de ejecución predeterminado definido en su configuración, y el proceso init garantiza que se inicie o detenga el conjunto correcto de servicios según dicho nivel. Al cambiar el nivel de ejecución, los administradores pueden adaptar rápidamente el sistema a diferentes tareas, como la resolución de problemas en modo monousuario, la ejecución sin red por motivos de seguridad o la habilitación de servicios gráficos y de red completos para su uso habitual. Este mecanismo proporciona una forma estandarizada y eficiente de gestionar el comportamiento del sistema sin necesidad de intervención manual para cada servicio.

Diferentes niveles de ejecución de Linux

A continuación se muestra una tabla estructurada de los niveles de ejecución tradicionales de SysV de Linux y sus propósitos:

Nivel de ejecuciónDescripciónCaso de uso típico
0Detener (apagar)Apaga el sistema de forma segura.
1Modo de usuario únicoModo de mantenimiento o emergencia con acceso raíz solamente, sin redes.
2Modo multiusuario sin redProporciona múltiples inicios de sesión de usuario pero deshabilita los servicios de red (varía según la distribución).
3Modo multiusuario completo con funciones de redModo estándar basado en texto, no gráfico, con todos los servicios y redes habilitados.
4Indefinido / definible por el usuarioRara vez usado; disponible para configuración personalizada.
5Modo multiusuario con redes y GUISe inicia en un entorno de escritorio gráfico con conexión a red completa.
6reiniciarReinicia el sistema de forma segura.

¿Para qué se utiliza Runlevel?

Los niveles de ejecución se utilizan para controlar el estado operativo de un Linux o sistema UNIX, definiendo qué servicios, procesos y recursos del sistema deben estar activos en un momento dado. Permiten a los administradores gestionar el comportamiento del sistema durante el inicio, el apagado o las transiciones entre diferentes modos de operación.

Por ejemplo, un sistema puede colocarse en modo de usuario único para solucionar problemas y cambiarse a modo multiusuario para uso normal. server operaciones o se inician en una interfaz gráfica para su uso en el escritorio. Al configurar o cambiar el nivel de ejecución, los administradores pueden habilitar o deshabilitar rápidamente grupos de servicios, conservar recursos del sistema, realizar tareas de mantenimiento o garantizar que la máquina funcione con la configuración más adecuada para su función. Este enfoque estructurado ayuda a mantener la coherencia, la seguridad y la eficiencia en diferentes entornos.

¿Cómo comprobar el nivel de ejecución?

Puede comprobar el nivel de ejecución actual en un sistema Linux mediante comandos que informan sobre el estado operativo del sistema. En los sistemas tradicionales... SysVinit sistemas, el comando runlevel muestra los niveles de ejecución anteriores y actuales, mientras que el comando who -r muestra el nivel de ejecución actual con más detalle.

En lo moderno basado en systemd distribuciones, que reemplazan los niveles de ejecución con tiene como objetivo, el comando equivalente es systemctl get-default para ver el objetivo predeterminado y systemctl isolate Para cambiar a otro. Además, systemctl list-units --type=target proporciona información sobre los destinos activos, que se asignan a niveles de ejecución como multi-user.target o graphic.target.

¿Cómo cambiar el nivel de ejecución en Linux?

Cómo cambiar el nivel de ejecución en Linux

Cambiar el nivel de ejecución en Linux depende de si el sistema usa la versión anterior SysVinit marco o lo moderno sistemad sistema init.

Sistemas basados ​​en SysVinit

El nivel de ejecución se puede cambiar temporalmente con el comando init o telinit seguido del número del nivel de ejecución. Por ejemplo, ejecutar init 3 cambia el sistema al modo multiusuario sin interfaz gráfica, mientras que init 5 inicia el entorno gráfico de escritorio. Para que el cambio sea permanente, se debe modificar el nivel de ejecución predeterminado en el archivo /etc/inittab, donde el sistema lee el nivel de ejecución a... bota en por defecto.

Sistemas basados ​​en Systemd

Los niveles de ejecución se reemplazan con tiene como objetivoPara cambiar a otro objetivo temporalmente, use systemctl isolate , como systemctl isolate multi-user.target para entrar en modo texto o systemctl isolate graphic.target para iniciar la GUI. Para cambiar la configuración predeterminada para futuros arranques, ejecute systemctl set-default. , que actualiza el enlace simbólico para el objetivo del sistema predeterminado.

¿Por qué es importante el nivel de ejecución?

A continuación se muestra una lista de razones por las que los niveles de ejecución son importantes en los sistemas Linux y Unix:

  • Control de sistemaLos niveles de ejecución definen qué servicios y procesos deben ejecutarse, lo que brinda a los administradores un control preciso sobre el estado operativo del sistema.
  • FlexibilidadPermiten cambiar rápidamente entre diferentes modos, como el modo de usuario único para mantenimiento o el modo gráfico para uso de escritorio.
  • Localización de averíasLos administradores pueden arrancar en entornos mínimos (como el nivel de ejecución 1) para corregir errores de configuración o recuperarse de fallas.
  • Gestión de recursosAl deshabilitar servicios innecesarios en ciertos niveles de ejecución, el sistema puede conservar CPU, memoria, y poder.
  • SeguridadLos niveles de ejecución inferiores pueden restringir el acceso a usuarios y servicios, lo que resulta útil para aislar el sistema durante el mantenimiento o en caso de sospecha de compromiso.
  • ConsistenciaProporcionan una estructura estandarizada para los estados del sistema en diferentes sistemas similares a Unix, simplificando la administración.
  • Automatización . Scripts y las configuraciones vinculadas a los niveles de ejecución agilizan el inicio, el apagado y las transiciones, reduciendo el trabajo manual.

Problemas de nivel de ejecución

A continuación se presenta una descripción general de los problemas de nivel de ejecución más comunes y por qué son importantes:

  • Nivel de ejecución predeterminado mal configuradoSi el nivel de ejecución predeterminado del sistema (o el destino systemd) está configurado incorrectamente, la máquina puede iniciarse en un estado no deseado, como el modo gráfico en un server, o un modo sin red en una estación de trabajo, lo que genera desperdicio de recursos o una usabilidad limitada.
  • Error al cargar servicios críticosEn un nivel de ejecución determinado, ciertos demonios Se espera que se inicien automáticamente. Si errores de configuración impiden su inicio, el sistema podría carecer de funciones de red, de servicios de visualización o incluso de funciones esenciales de inicio de sesión, dejándolo parcial o totalmente inutilizable.
  • Incapacidad para cambiar los niveles de ejecuciónProblemas con los scripts de inicio o el servicio. dependencias Puede impedir que el sistema cambie de modo dinámicamente. Por ejemplo, cambiar del nivel de ejecución 3 (multiusuario basado en texto) al nivel de ejecución 5 (gráfico) puede fallar si el administrador de pantalla está mal configurado o no está presente.
  • Bucles de arranque o bloqueosUna configuración de nivel de ejecución incorrecta o rota puede provocar que el sistema intente repetidamente cargar servicios incompatibles, lo que resulta en reinicios continuos o núcleo pánico. Esto suele ocurrir cuando el nivel de ejecución predeterminado apunta a un modo que requiere una ejecución no disponible. hardware o software
  • Comportamiento inconsistente entre distribuciones. No todo Distribuciones de Linux Trate los niveles de ejecución de la misma manera. Por ejemplo, algunos usan el nivel de ejecución 2 como modo multiusuario predeterminado, mientras que otros usan el 3 o el 5. Esto puede generar confusión y errores de configuración cuando los administradores trabajan en varios sistemas.
  • Transición a los objetivos de systemdLos sistemas Linux modernos han reemplazado en gran medida los niveles de ejecución por destinos systemd. Si bien cumplen una función similar, las diferencias en terminología y comandos pueden causar problemas a los administradores acostumbrados a SysVinit, lo que puede provocar errores en la gestión de servicios y la recuperación del sistema.

¿Cuál es la diferencia entre objetivo y nivel de ejecución?

Aquí hay una tabla comparativa que explica la diferencia entre niveles de ejecución y tiene como objetivo en Linux:

Aspecto Nivel de ejecución (SysVinit)Objetivo (systemd)
DefiniciónUn estado numérico predefinido (0–6) que determina qué servicios y procesos se inician.Una unidad con nombre en systemd que agrupa servicios y define el estado del sistema.
FormatoIdentificado por números (por ejemplo, nivel de ejecución 3 = multiusuario sin GUI).Identificado por nombres descriptivos (por ejemplo, multi-user.target, graphic.target).
Archivo de configuraciónControlado a través de /etc/inittab.Administrado con archivos de unidad en /etc/systemd/system/ y /lib/systemd/system/.
FlexibilidadEstados fijos con personalización limitada (principalmente 7 niveles de ejecución).Altamente flexible, permitiendo objetivos y dependencias personalizados.
Estado predeterminadoEstablecido en /etc/inittab.Establecer con systemctl set-default .
Cambiar comandoCambiado temporalmente con init o telinit .Cambiado temporalmente con systemctl isolate .
Checkout ExtensibilityNo es fácilmente extensible; está vinculado al antiguo SysVinit.Totalmente extensible; los administradores pueden crear nuevos objetivos para necesidades específicas.
Comprobación del estado actualComprobado con runlevel o who -r.Se comprueba con systemctl get-default o systemctl list-units --type=target.

Anastasia
Spasojevic
Anastazija es una escritora de contenido experimentada con conocimiento y pasión por cloud informática, tecnología de la información y seguridad en línea. En phoenixNAP, se centra en responder preguntas candentes sobre cómo garantizar la solidez y seguridad de los datos para todos los participantes en el panorama digital.