GNU/Linux >> Tutoriales Linux >  >> Linux

Aprendiendo a amar systemd

systemd (sí, todo en minúsculas, incluso al comienzo de una oración) es el reemplazo moderno de los scripts init y SystemV init. También es mucho más.

Como la mayoría de los administradores de sistemas, cuando pienso en el programa init y SystemV, pienso en el inicio y apagado de Linux y no en mucho más, como administrar servicios una vez que están en funcionamiento. Al igual que init, systemd es la madre de todos los procesos y es responsable de llevar el host de Linux a un estado en el que se pueda realizar un trabajo productivo. Algunas de las funciones asumidas por systemd, que es mucho más extensa que el antiguo programa init, son administrar muchos aspectos de un host Linux en ejecución, incluido el montaje de sistemas de archivos, la administración de hardware, el manejo de temporizadores y el inicio y la administración de los servicios del sistema que se requieren. tener un host Linux productivo.

Esta serie de artículos, que se basa en parte en extractos de mi curso de capacitación de Linux de tres volúmenes, Uso y administración de Linux:de cero a administrador de sistemas , explora las funciones de systemd tanto al inicio como después de que finaliza el inicio.

Inicio de Linux

El proceso completo que lleva a un host Linux de un estado apagado a un estado de ejecución es complejo, pero está abierto y se puede conocer. Antes de entrar en detalles, daré una descripción general rápida desde cuando se enciende el hardware host hasta que el sistema está listo para que un usuario inicie sesión. La mayoría de las veces, "el proceso de arranque" se analiza como una sola entidad, pero eso no es exacto. De hecho, hay tres partes principales en el proceso completo de arranque e inicio:

  • Arranque de hardware: Inicializa el hardware del sistema
  • arranque de Linux: Carga el kernel de Linux y luego systemd
  • Inicio de Linux: Donde systemd prepara el host para el trabajo productivo

La secuencia de inicio de Linux comienza después de que el kernel haya cargado init o systemd, dependiendo de si la distribución usa el inicio antiguo o el nuevo, respectivamente. Los programas init y systemd inician y administran todos los demás procesos y ambos se conocen como la "madre de todos los procesos" en sus respectivos sistemas.

Es importante separar el inicio del hardware del inicio de Linux del inicio de Linux y definir explícitamente los puntos de demarcación entre ellos. Comprender estas diferencias y qué papel juega cada una para llevar un sistema Linux a un estado en el que pueda ser productivo hace posible administrar estos procesos y determinar mejor dónde se produce un problema durante lo que la mayoría de la gente llama "arranque".

El proceso de inicio sigue el proceso de inicio de tres pasos y lleva la computadora Linux a un estado operativo en el que se puede utilizar para el trabajo productivo. El proceso de inicio comienza cuando el kernel transfiere el control del host a systemd.

controversia systemd

systemd puede evocar una amplia gama de reacciones de los administradores de sistemas y otros responsables de mantener los sistemas Linux en funcionamiento. El hecho de que systemd se haga cargo de tantas tareas en muchos sistemas Linux ha generado rechazo y discordia entre ciertos grupos de desarrolladores y administradores de sistemas.

SystemV y systemd son dos métodos diferentes para realizar la secuencia de inicio de Linux. Los scripts de inicio de SystemV y el programa init son los métodos antiguos, y systemd usando objetivos es el nuevo método. Aunque la mayoría de las distribuciones de Linux modernas utilizan el systemd más nuevo para el inicio, el apagado y la gestión de procesos, todavía hay algunas que no lo hacen. Una de las razones es que algunos mantenedores de distribución y algunos administradores de sistemas prefieren el antiguo método SystemV al más nuevo systemd.

Creo que ambos tienen ventajas.

Por que prefiero SystemV

Prefiero SystemV porque es más abierto. El inicio se logra mediante scripts de Bash. Después de que el kernel inicie el programa init, que es un binario compilado, init inicia el rc.sysinit script, que realiza muchas tareas de inicialización del sistema. Después de rc.sysinit completa, init lanza el /etc/rc.d/rc secuencia de comandos, que a su vez inicia los diversos servicios definidos por las secuencias de comandos de inicio de SystemV en /etc/rc.d/rcX.d , donde "X" es el número del nivel de ejecución que se está iniciando.

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Excepto por el propio programa init, todos estos programas son scripts abiertos y fáciles de conocer. Es posible leer estos scripts y aprender exactamente lo que está ocurriendo durante todo el proceso de inicio, pero no creo que muchos administradores de sistemas realmente hagan eso. Cada secuencia de comandos de inicio está numerada para que inicie su servicio previsto en una secuencia específica. Los servicios se inician en serie y solo se inicia un servicio a la vez.

systemd, desarrollado por Lennart Poettering y Kay Sievers de Red Hat, es un sistema complejo de grandes ejecutables binarios compilados que no son comprensibles sin acceso al código fuente. Es de código abierto, por lo que "acceder al código fuente" no es difícil, solo menos conveniente. systemd parece representar una refutación significativa de múltiples principios de la filosofía de Linux. Como binario, systemd no está abierto directamente para que el administrador del sistema lo vea o realice cambios fáciles. systemd intenta hacer todo, como administrar los servicios en ejecución, al tiempo que proporciona mucha más información de estado que SystemV. También administra hardware, procesos y grupos de procesos, montajes de sistemas de archivos y mucho más. systemd está presente en casi todos los aspectos del host Linux moderno, lo que lo convierte en la herramienta integral para la administración del sistema. Todo esto es una clara violación de los principios de que los programas deben ser pequeños y que cada programa debe hacer una cosa y hacerlo bien.

Por que prefiero systemd

Prefiero systemd como mi mecanismo de inicio porque inicia tantos servicios como sea posible en paralelo, dependiendo de la etapa actual en el proceso de inicio. Esto acelera el inicio general y lleva el sistema host a una pantalla de inicio de sesión más rápido que SystemV.

systemd administra casi todos los aspectos de un sistema Linux en ejecución. Puede administrar los servicios en ejecución mientras proporciona mucha más información de estado que SystemV. También administra hardware, procesos y grupos de procesos, montajes de sistemas de archivos y mucho más. systemd está presente en casi todos los aspectos del sistema operativo Linux moderno, lo que lo convierte en la herramienta integral para la administración del sistema. (¿Te suena familiar?)

Las herramientas systemd son binarios compilados, pero el conjunto de herramientas está abierto porque todos los archivos de configuración son archivos de texto ASCII. La configuración de inicio se puede modificar a través de varias GUI y herramientas de línea de comandos, además de agregar o modificar varios archivos de configuración para satisfacer las necesidades del entorno informático local específico.

El problema real

¿Creías que no me podían gustar ambos sistemas de inicio? Yo sí, y puedo trabajar con cualquiera de los dos.

En mi opinión, el problema real y la causa raíz de la mayor parte de la controversia entre SystemV y systemd es que no hay elección en el nivel de administrador de sistemas. Los desarrolladores, mantenedores y empaquetadores de las diversas distribuciones ya han tomado la decisión de usar SystemV o systemd, pero por una buena razón. Sacar y reemplazar un sistema init, por su naturaleza extrema e invasiva, tiene muchas consecuencias que serían difíciles de abordar fuera del proceso de diseño de distribución.

A pesar de que esta elección está hecha por mí, mis hosts de Linux se inician y funcionan, que es lo que más me importa. Como usuario final e incluso como administrador de sistemas, mi principal preocupación es si puedo hacer mi trabajo, como escribir mis libros y este artículo, instalar actualizaciones y escribir scripts para automatizar todo. Mientras pueda hacer mi trabajo, realmente no me importa la secuencia de inicio utilizada en mi distribución.

Me importa cuando hay un problema durante el inicio o la gestión del servicio. Independientemente del sistema de inicio que se use en un host, sé lo suficiente como para seguir la secuencia de eventos para encontrar la falla y solucionarla.

Reemplazo de SystemV

Ha habido intentos anteriores de reemplazar SystemV con algo un poco más moderno. Durante aproximadamente dos lanzamientos, Fedora usó una cosa llamada Upstart para reemplazar el antiguo SystemV, pero no reemplazó a init y no proporcionó cambios que noté. Debido a que Upstart no proporcionó cambios significativos a los problemas relacionados con SystemV, los esfuerzos en esta dirección se abandonaron rápidamente a favor de systemd.

A pesar de que la mayoría de los desarrolladores de Linux están de acuerdo en que reemplazar el antiguo inicio de SystemV es una buena idea, a muchos desarrolladores y administradores de sistemas no les gusta systemd por eso. En lugar de repetir todos los llamados problemas que la gente tiene, o tuvo, con systemd, lo referiré a dos artículos buenos, aunque algo antiguos, que deberían cubrir casi todo. Linus Torvalds, el creador del kernel de Linux, parece desinteresado. En un artículo de ZDNet de 2014, Linus Torvalds y otros en systemd de Linux , Linus tiene claros sus sentimientos.

"En realidad, no tengo opiniones particularmente sólidas sobre systemd en sí. He tenido problemas con algunos de los principales desarrolladores que creo que son demasiado arrogantes con respecto a los errores y la compatibilidad, y creo que algunos de los detalles de diseño son una locura (yo no me gustan los registros binarios, por ejemplo), pero esos son detalles, no grandes problemas".

Por si no sabes mucho de Linus, te puedo decir que si algo no le gusta, es muy franco, explícito y bastante claro sobre ese disgusto. Se ha vuelto más aceptable socialmente en su forma de abordar su disgusto por las cosas.

En 2013, Poettering escribió una larga publicación de blog en la que desacredita los mitos sobre systemd y proporciona información sobre algunas de las razones para crearlo. Esta es una lectura muy buena y la recomiendo mucho.

tareas systemd

Dependiendo de las opciones utilizadas durante el proceso de compilación (que no se consideran en esta serie), systemd puede tener hasta 69 ejecutables binarios que realizan las siguientes tareas, entre otras:

  • El programa systemd se ejecuta como PID 1 y proporciona el inicio del sistema de tantos servicios en paralelo como sea posible, lo que, como efecto secundario, acelera los tiempos de inicio generales. También gestiona la secuencia de apagado.
  • El programa systemctl proporciona una interfaz de usuario para la gestión de servicios.
  • Se ofrece soporte para scripts de inicio SystemV y LSB para compatibilidad con versiones anteriores.
  • La gestión de servicios y los informes proporcionan más datos sobre el estado del servicio que SystemV.
  • Incluye herramientas para la configuración básica del sistema, como nombre de host, fecha, configuración regional, listas de usuarios registrados, contenedores y máquinas virtuales en ejecución, cuentas del sistema, directorios y configuraciones de tiempo de ejecución, demonios para administrar la configuración de red simple, sincronización de tiempo de red , reenvío de registros y resolución de nombres.
  • Ofrece administración de sockets.
  • Los temporizadores de systemd brindan capacidades similares a las de cron para incluir la ejecución de un script en momentos relacionados con el inicio del sistema, el inicio de systemd, la última vez que se inició el temporizador y más.
  • Proporciona una herramienta para analizar fechas y horas utilizadas en las especificaciones del temporizador.
  • El montaje y desmontaje de sistemas de archivos con conciencia jerárquica permite una cascada más segura de sistemas de archivos montados.
  • Permite la creación y gestión positiva de archivos temporales, incluida la eliminación.
  • Una interfaz para D-Bus proporciona la capacidad de ejecutar secuencias de comandos cuando los dispositivos se conectan o desconectan. Esto permite que todos los dispositivos, ya sean enchufables o no, se traten como plug-and-play, lo que simplifica considerablemente el manejo del dispositivo.
  • Su herramienta para analizar la secuencia de inicio se puede utilizar para localizar los servicios que toman más tiempo.
  • Incluye diarios para almacenar mensajes de registro del sistema y herramientas para administrar los diarios.

Arquitectura

Esas tareas y más son compatibles con una serie de demonios, programas de control y archivos de configuración. La Figura 1 muestra muchos de los componentes que pertenecen a systemd. Este es un diagrama simplificado diseñado para proporcionar una descripción general de alto nivel, por lo que no incluye todos los programas o archivos individuales. Tampoco proporciona información sobre el flujo de datos, que es tan complejo que sería un ejercicio inútil en el contexto de esta serie de artículos.

Una exposición completa de systemd tomaría un libro por sí solo. No necesita comprender los detalles de cómo encajan los componentes de systemd en la Figura 1; es suficiente conocer los programas y componentes que permiten administrar varios servicios de Linux y manejar archivos de registro y diarios. Pero está claro que systemd no es la monstruosidad monolítica que pretenden ser algunos de sus críticos.

systemd como PID 1

systemd es PID 1. Algunas de sus funciones, que son mucho más extensas que el antiguo programa init SystemV3, son administrar muchos aspectos de un host Linux en ejecución, incluido el montaje de sistemas de archivos y el inicio y la administración de los servicios del sistema necesarios para tener un host Linux productivo. Cualquiera de las tareas de systemd que no están relacionadas con la secuencia de inicio están fuera del alcance de este artículo (pero algunas se explorarán más adelante en esta serie).

Primero, systemd monta los sistemas de archivos definidos por /etc/fstab , incluidos los archivos de intercambio o las particiones. En este punto, puede acceder a los archivos de configuración ubicados en /etc , incluido el propio. Utiliza su enlace de configuración, /etc/systemd/system/default.target , para determinar en qué estado u objetivo debe iniciar el host. El objetivo.predeterminado El archivo es un enlace simbólico al verdadero archivo de destino. Para una estación de trabajo de escritorio, normalmente será el graphical.target , que es equivalente al nivel de ejecución 5 en SystemV. Para un servidor, es más probable que el valor predeterminado sea multi-user.target , que es como el nivel de ejecución 3 en SystemV. El objetivo.de.emergencia es similar al modo de usuario único. Los objetivos y los servicios son unidades systemd.

La siguiente tabla (Figura 2) compara los objetivos de systemd con los niveles de ejecución de inicio de SystemV anteriores. systemd proporciona los alias de destino de systemd para la compatibilidad con versiones anteriores. Los alias de destino permiten que los scripts, y muchos administradores de sistemas, usen comandos de SystemV como init 3 para cambiar los niveles de ejecución. Por supuesto, los comandos de SystemV se reenvían a systemd para su interpretación y ejecución.

Cada objetivo tiene un conjunto de dependencias descritas en su archivo de configuración. systemd inicia las dependencias necesarias, que son los servicios necesarios para ejecutar el host Linux en un nivel específico de funcionalidad. Cuando todas las dependencias enumeradas en los archivos de configuración de destino están cargadas y en ejecución, el sistema se ejecuta en ese nivel de destino. En la Figura 2, los objetivos con la mayor funcionalidad se encuentran en la parte superior de la tabla, y la funcionalidad disminuye hacia la parte inferior de la tabla.

systemd también examina los directorios de inicio heredados de SystemV para ver si existen archivos de inicio allí. Si es así, systemd los usa como archivos de configuración para iniciar los servicios descritos por los archivos. El servicio de red en desuso es un buen ejemplo de uno que todavía usa los archivos de inicio de SystemV en Fedora.

La figura 3 (abajo) se copia directamente de la página del manual de arranque. Muestra un mapa de la secuencia general de eventos durante el inicio de systemd y los requisitos básicos de pedido para garantizar un inicio exitoso.

                                         cryptsetup-pre.target
                                                   |
 (various low-level                                v
     API VFS mounts:                 (various cryptsetup devices...)
  mqueue, configfs,                                |    |
  debugfs, ...)                                    v    |
  |                                  cryptsetup.target  |
  |  (various swap                                 |    |    remote-fs-pre.target
  |   devices...)                                  |    |     |        |
  |    |                                           |    |     |        v
  |    v                       local-fs-pre.target |    |     |  (network file systems)
  |  swap.target                       |           |    v     v                 |
  |    |                               v           |  remote-cryptsetup.target  |
  |    |  (various low-level  (various mounts and  |             |              |
  |    |   services: udevd,    fsck services...)   |             |    remote-fs.target
  |    |   tmpfiles, random            |           |             |             /
  |    |   seed, sysctl, ...)          v           |             |            /
  |    |      |                 local-fs.target    |             |           /
  |    |      |                        |           |             |          /
  \____|______|_______________   ______|___________/             |         /
                              \ /                                |        /
                               v                                 |       /
                        sysinit.target                           |      /
                               |                                 |     /
        ______________________/|\_____________________           |    /
       /              |        |      |               \          |   /
       |              |        |      |               |          |  /
       v              v        |      v               |          | /
  (various       (various      |  (various            |          |/
   timers...)      paths...)   |   sockets...)        |          |
       |              |        |      |               |          |
       v              v        |      v               |          |
 timers.target  paths.target   |  sockets.target      |          |
       |              |        |      |               v          |
       v              \_______ | _____/         rescue.service   |
                              \|/                     |          |
                               v                      v          |
                           basic.target         rescue.target    |
                               |                                 |
                       ________v____________________             |
                      /              |              \            |
                      |              |              |            |
                      v              v              v            |
                  display-    (various system   (various system  |
              manager.service     services        services)      |
                      |         required for        |            |
                      |        graphical UIs)       v            v
                      |              |            multi-user.target
 emergency.service    |              |              |
         |            \_____________ | _____________/
         v                          \|/
 emergency.target                    v
                              graphical.target

El sysinit.objetivo y objetivo.básico los objetivos pueden considerarse puntos de control en el proceso de inicio. Aunque uno de los objetivos de diseño de systemd es iniciar los servicios del sistema en paralelo, ciertos servicios y destinos funcionales deben iniciarse antes de que puedan iniciarse otros servicios y destinos. Estos puntos de control no se pueden pasar hasta que se cumplan todos los servicios y objetivos requeridos por ese punto de control.

El sysinit.objetivo se alcanza cuando se completan todas las unidades de las que depende. Todas esas unidades, montar sistemas de archivos, configurar archivos de intercambio, iniciar udev, configurar la semilla del generador aleatorio, iniciar servicios de bajo nivel y configurar servicios criptográficos (si uno o más sistemas de archivos están encriptados), deben completarse pero, dentro del sysinit.objetivo , esas tareas se pueden realizar en paralelo.

El sysinit.objetivo pone en marcha todos los servicios y unidades de bajo nivel necesarios para que el sistema sea marginalmente funcional y que se requieren para permitir pasar al basic.target .

Después de sysinit.target se cumple, systemd luego inicia todas las unidades requeridas para cumplir con el siguiente objetivo. El objetivo básico proporciona alguna funcionalidad adicional al iniciar las unidades que se requieren para todos los próximos objetivos. Estos incluyen configurar cosas como rutas a varios directorios ejecutables, sockets de comunicación y temporizadores.

Finalmente, los objetivos a nivel de usuario, multi-user.target o objetivo.gráfico , se puede inicializar. El objetivo.multiusuario debe alcanzarse antes de que se puedan cumplir las dependencias de destino gráficas. Los objetivos subrayados en la Figura 3 son los objetivos habituales de inicio. Cuando se alcanza uno de estos objetivos, el inicio se ha completado. Si el multiusuario.objetivo es el valor predeterminado, entonces debería ver un inicio de sesión en modo texto en la consola. Si objetivo.gráfico es el valor predeterminado, entonces debería ver un inicio de sesión gráfico; la pantalla de inicio de sesión GUI específica que ve depende de su administrador de visualización predeterminado.

La página del manual de arranque también describe y proporciona mapas del arranque en el disco RAM inicial y el proceso de apagado de systemd.

systemd también proporciona una herramienta que enumera las dependencias de un inicio completo o para una unidad específica. Una unidad es una entidad de recursos systemd controlable que puede abarcar desde un servicio específico, como httpd o sshd, hasta temporizadores, montajes, sockets y más. Pruebe el siguiente comando y desplácese por los resultados.

systemctl list-dependencies graphical.target

Tenga en cuenta que esto expande por completo la lista de unidades de destino de nivel superior requeridas para llevar el sistema al modo de ejecución de destino gráfico. Usa el --todos opción para expandir todas las otras unidades también.

systemctl list-dependencies --all graphical.target

Puede buscar cadenas como "target", "slice" y "socket" con las herramientas de búsqueda de menos comando.

Así que ahora, intente lo siguiente.

systemctl list-dependencies multi-user.target

y

systemctl list-dependencies rescue.target

y

systemctl list-dependencies local-fs.target

y

systemctl list-dependencies dbus.service

Esta herramienta me ayuda a visualizar los detalles de las dependencias de inicio para el host en el que estoy trabajando. Continúe y dedique un tiempo a explorar el árbol de inicio para uno o más de sus hosts Linux. Pero tenga cuidado porque la página man de systemctl contiene esta nota:

"Tenga en cuenta que este comando solo enumera las unidades actualmente cargadas en la memoria por el administrador de servicios. En particular, este comando no es adecuado para obtener una lista completa de todas las dependencias inversas en una unidad específica, ya que no enumerará las dependencias declarado por unidades actualmente no cargadas."

Pensamientos finales

Incluso antes de profundizar en systemd, es obvio que es poderoso y complejo. También es evidente que systemd no es un archivo binario único, enorme, monolítico e incognoscible. Más bien, se compone de una serie de componentes y subcomandos más pequeños que están diseñados para realizar tareas específicas.

El siguiente artículo de esta serie explorará el inicio de systemd con más detalle, así como los archivos de configuración de systemd, el cambio del objetivo predeterminado y cómo crear una unidad de servicio simple.

Recursos

Hay una gran cantidad de información sobre systemd disponible en Internet, pero mucha es concisa, obtusa o incluso engañosa. Además de los recursos mencionados en este artículo, las siguientes páginas web ofrecen información más detallada y confiable sobre el inicio de systemd.

  • El Proyecto Fedora tiene una buena guía práctica para systemd. Tiene prácticamente todo lo que necesita saber para configurar, administrar y mantener una computadora Fedora usando systemd.
  • El Proyecto Fedora también tiene una buena hoja de trucos que hace una referencia cruzada de los comandos antiguos de SystemV con los de systemd comparables.
  • Para obtener información técnica detallada sobre systemd y las razones para crearlo, consulte la descripción de systemd de Freedesktop.org.
  • "More systemd fun" de Linux.com ofrece información y consejos más avanzados sobre systemd.

También hay una serie de artículos profundamente técnicos para administradores de sistemas Linux escritos por Lennart Poettering, el diseñador y desarrollador principal de systemd. Estos artículos fueron escritos entre abril de 2010 y septiembre de 2011, pero son tan relevantes ahora como lo fueron entonces. Gran parte de todo lo bueno que se ha escrito sobre systemd y su ecosistema se basa en estos documentos.

  • Repensar el PID 1
  • systemd para administradores, Parte I
  • systemd para administradores, Parte II
  • systemd para administradores, Parte III
  • systemd para administradores, Parte IV
  • systemd para administradores, Parte V
  • systemd para administradores, Parte VI
  • systemd para administradores, Parte VII
  • systemd para administradores, Parte VIII
  • systemd para administradores, Parte IX
  • systemd para administradores, Parte X
  • systemd para administradores, Parte XI

Linux
  1. 5 razones por las que los administradores de sistemas aman systemd

  2. Administrar el inicio usando systemd

  3. Cómo aprender Linux es nuestro lenguaje de amor

  4. Cómo crear un servicio Systemd en Linux

  5. Agregar un nuevo servicio a Linux systemd

Por qué amo KDE para mi escritorio Linux

Analice el rendimiento de inicio de Linux

Mi historia de Linux:Aprendiendo Linux en los años 90

Cómo ejecutar Shell Script como servicio SystemD en Linux

Linux – ¿Ubicación del script Fsck?

Comando CURL Linux:Aprendiendo con el ejemplo

    objetivos systemd Nivel de ejecución de SystemV alias de destino Descripción
    predeterminado.objetivo     Este objetivo siempre tiene un alias con un enlace simbólico a cualquiera de multi-user.target o objetivo.gráfico . systemd siempre usa el default.target para iniciar el sistema. El objetivo.predeterminado nunca debe tener un alias para halt.target , apagar.objetivo o reboot.target .
    objetivo.gráfico 5 runlevel5.objetivo Objetivo.multiusuario con una GUI
      4 runlevel4.objetivo Sin usar. El nivel de ejecución 4 era idéntico al nivel de ejecución 3 en el mundo SystemV. Este objetivo podría crearse y personalizarse para iniciar servicios locales sin cambiar el multi-user.target predeterminado. .
    multiusuario.objetivo 3 runlevel3.objetivo Todos los servicios en ejecución, pero solo la interfaz de línea de comandos (CLI)
      2 runlevel2.objetivo Multiusuario, sin NFS, pero todos los demás servicios no GUI en ejecución
    objetivo.rescate 1 nivel de ejecución1.objetivo Un sistema básico, incluido el montaje de los sistemas de archivos con solo los servicios más básicos ejecutándose y un shell de rescate en la consola principal
    objetivo.de.emergencia S   Modo de usuario único:no hay servicios en ejecución; los sistemas de archivos no están montados. Este es el nivel de operación más básico con solo un shell de emergencia ejecutándose en la consola principal para que el usuario interactúe con el sistema.
    detener.objetivo     Detiene el sistema sin apagarlo
    reiniciar.objetivo 6 runlevel6.objetivo Reiniciar
    apagar.objetivo 0 runlevel0.objetivo Detiene el sistema y apaga la alimentación