Descripción general de systemd
100%

Init · Lección 5

Descripción general de systemd

Aprende cómo systemd carga unidades, resuelve dependencias, activa objetivos y gestiona recursos del sistema y de los usuarios.

Systemd es el sistema de inicio y gestor de servicios que se ejecuta como PID 1 en muchas distribuciones Linux actuales. El proyecto systemd también proporciona componentes de registro, dispositivos, inicio de sesión, red, hora y otros ámbitos, pero cada distribución puede elegir cuáles implantar.

Confirmar el gestor en ejecución

Inspecciona el estado activo en lugar de comprobar si existen directorios instalados:

$ ps -p 1 -o pid,comm,args=
$ systemctl is-system-running

/usr/lib/systemd/ puede existir en un sistema donde otro programa sea el PID 1, y un contenedor puede exponer su propio espacio de nombres de PID. systemctl también dispone de modos para el gestor de usuario y para sistemas remotos o contenedores, así que identifica a qué gestor se dirige cada operación.

¿Qué identifica de la forma más directa a systemd como gestor de inicio del sistema?

Las unidades como objetos gestionados

Una unidad es el modelo con nombre que systemd utiliza para representar un recurso o una actividad. Entre los tipos habituales se encuentran:

  • .service para procesos y demonios
  • .socket para la activación mediante sockets
  • .mount y .automount para sistemas de archivos
  • .timer y .path para la activación basada en eventos
  • .target para agrupación y sincronización
  • .device, .swap, .slice y .scope para otros recursos gestionados

El estado de una unidad no siempre es «en ejecución». Un montaje puede estar montado, un temporizador esperando, un dispositivo presente y un objetivo activo después de alcanzar sus dependencias.

¿Qué tipo de unidad suele agrupar otras unidades y proporcionar un punto de sincronización?

Rutas de carga y ajustes de las unidades

Las unidades del sistema pueden cargarse desde rutas de la distribución y del administrador como:

  • /usr/lib/systemd/system/ para las unidades proporcionadas por paquetes en muchas distribuciones
  • /run/systemd/system/ para configuraciones generadas durante la ejecución o transitorias
  • /etc/systemd/system/ para configuraciones y ajustes locales persistentes del administrador

Las rutas exactas del proveedor pueden variar. La configuración local de mayor prioridad prevalece sobre los archivos de menor prioridad con el mismo nombre de unidad. Es preferible crear ajustes parciales con systemctl edit UNIT en lugar de copiar y modificar un archivo completo del proveedor, para que los cambios de las actualizaciones de paquetes sigan siendo visibles.

¿Dónde deberían residir normalmente los ajustes locales persistentes de las unidades del sistema?

Dependencias y orden

Systemd construye una transacción a partir de las relaciones de dependencia. Wants= y Requires= incorporan otras unidades a una transacción con distinta intensidad. Before= y After= especifican el orden cuando ambas unidades están programadas; por sí solos, no provocan que se inicie otra unidad.

Una línea After=network.target no demuestra que la conectividad, el DNS o un punto remoto concreto estén disponibles. Los servicios deben usar la integración adecuada con el estado de red disponible o implementar sus propios mecanismos de reintento y disponibilidad.

¿Qué especifica por sí solo After=other.service?

Objetivos y transacción de arranque predeterminada

default.target suele ser un alias de un objetivo como multi-user.target o graphical.target. Systemd inicia una transacción para ese objetivo y sus dependencias, lo que permite que tareas no relacionadas avancen a la vez mientras se respeta el orden explícito.

Los objetivos se parecen a los niveles de ejecución solo en términos generales de compatibilidad. Varios objetivos pueden estar activos simultáneamente, pueden crearse objetivos personalizados y que un objetivo esté activo no significa que todos los servicios de la máquina funcionen correctamente.

¿Qué selecciona normalmente default.target?

Lección completada

Has completado Descripción general de systemd

Ahora puedes describir systemd en términos de gestores activos, unidades y transacciones.

  • Confirma systemd mediante el PID 1 correspondiente y la conexión con el gestor.

  • Relaciona los tipos de recursos con los sufijos de las unidades.

  • Coloca los ajustes locales por encima de la configuración del proveedor.

  • Distingue la intensidad de las dependencias, el orden y la disponibilidad de la aplicación.

  • Trata los objetivos como agrupaciones e hitos, no como estados mutuamente excluyentes.

Guarda tu progreso

Crea una cuenta gratuita para guardar esta lección y continuar en cualquier dispositivo.

Crear una cuenta gratuita
Siguiente Lección
Volver a Init