¿Qué es SystemD?

| Última modificación: 23 de abril de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

SystemD es el administrador de servicios y sistemas en Linux, y la estandarización de la mayoría de distribuciones de Debian y Red Hat. SystemD fue desarrollado con el objetivo de encargarse de arrancar todo lo que está por debajo del Kernel, permitiendo ejecutar varios procesos de manera simultánea. Además, permite un seguimiento de procesos a través del uso de grupos de control del sistema operativo Linux.

Otra de las funciones de systemd linux, es el de apoyar la restauración del sistema e implementar un sistema de gestión de dependencias fundamentado en un control lógico de los servicios. Esta herramienta utiliza los llamados cgroups con el fin de optimizar el uso de recursos.

Aunque es compatible con métodos antiguos como SysV y LSB, el administrador SystemD destaca por proporcionar un sistema de arranque más rápido y flexible que los administradores de versiones anteriores.

Historia de SystemD

Originalmente, los sistema Linux y Unix arrancaban el proceso Init, que iniciaba el hardware y los procesos del sistema. Luego, estas funciones fueron integradas por Lennart Poettering y Kay Sievers, creando así el sistema systemd.

Este administrador sería adoptado por la mayoría de distribuciones para gestionar sus arranques, siendo actualmente, el padre de todos los procesos y el responsable de llevar a Linux al estado final deseado.

Este estado viene determinado en el fichero /etc/systemd/sistem/default.target y cuenta con una serie de sistemas, procesos y demás que debe arrancar.

Utilidades de SystemD

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Para administrar los servicios, systemd linux tiene ciertas utilidades como por ejemplo:

  • systemctl: se encarga de controlar el sistema y los servicios del administrador.
  • journalctl: tiene por función administrar el sistema de registro de esta herramienta.
  • hostnamectl: utilizado para controlar el nombre de host.
  • localectl: se utiliza para configurar la distribución local y de teclado del sistema.
  • timedatectl: su función es la de establecer la hora y la fecha del sistema.
  • systemd-cgls: permitirá mostrar el contenido de cgroup.
  • systemadm: Front-end para el comando systemctl.

Comandos de SystemD

Este administrador system v linux utiliza una serie de comandos para ejecutar sus funciones, siendo algunos de ellos:

  • list-units: te permitirá obtener una lista de las unidades conocidas por defecto.
  • list-unit-files: muestra la lista de las unidades instaladas en el sistema.
  • isolate: este comando inicia la unidad indicada y sus dependencias, al tiempo que detiene las demás unidades restantes.
  • is-activate: funciona para comprobar si una unidad está siendo ejecutada.
  • is-failed: este comando comprueba si la unidad se encuentra en estado ¨failed¨.
  • show: usado para mostrar las propiedades de una unidad.
  • enable: comando para habilitar una unidad.
  • disable: puedes usarlo para deshabilitar una unidad.
  • preset: funciona para resetear una unidad.
  • cancel: este comando es utilizado para cancelar un trabajo.
  • start: se usa para activar o iniciar un servicio.
  • stop: comando que detiene un determinado servicio.
  • reload: funciona para recargar un servicio.
  • restart: tiene por función reiniciar un servicio.
  • halt: con este comando podrás cerrar la sesión y apagar el sistema.
  • reboot: se usa para reiniciar el sistema.
  • poweroff: su función es apagar el sistema como si se desconectara el cable de la corriente.
  • suspend: este comando hace posible que el sistema entre en modo de suspensión.

Target en System D

Un target en systemd unix hace referencia a los archivos de configuración con nombre terminado en .target, y que se encarga de codificar información sobre una unidad de destino usada para agrupar unidades y puntos de sincronización durante el start-up.

Estos targets están relacionados con los llamados ¨runlevels¨ de los sistemas basados en el antiguo modelo SystemV. Los runlevels identificaban un estado del sistema operativo, determinando también, qué programas podían ser ejecutados tras el arranque; además, se numeraban del 0 al 6. La equivalencia entre runlevels y targets en systemv linux puede ser resumida de esta forma:

SystemVSystem D TargetAliasDescripción
halt.targetPara el sistema sin necesidad de apagarlo de forma física.
0poweroff.targetrunlevel0.targetPara el sistema y lo apaga físicamente.
Semergency.targetSingle user. Aquí no se montan filessystem y tampoco se arrancan servicios.
1recue.targetrunlevel1.targetSe montan los filessystem y se inicia una shell de rescate
2runlevel2.targetSe refiere a un multiusuario sin NFS.
3multi-user.targetrunlevel3.targetHace referencia a un multiusuario con todos los servicios arrancados en modo CLI.
4runlevel4.targetNo se usa.
5graphical.targetrunlevel5.targetEs igual al multi-user con entorno gráfico.
6reboot.targetrunlevel6.targetReinicio.
default.targetSe debe crear un link simbólico a multi-user o a graphical.

Además de esto, cabe resaltar que cada target en system d linux tiene una serie de dependencias descritas en sus ficheros de configuración. A su vez, estas dependencias suelen ser los servicios requeridos para que Linux se ejecute siguiendo un específico nivel de funcionalidad.

La relación completa de dependencias puede ser consultada a través de ¨man bootup¨.

Si te interesa cambiar de un target a otro, tendrás que seguir los comandos planteados anteriormente en el artículo, por lo cual, para esta función, podrás utilizar systemctl.isolate.target.

Además, para cambiar el target por defecto tienes la posibilidad de usar systemctl get-default o systemctl set- default (target).

¿Cuál es el siguiente paso?

Ahora que ya conoces qué es el administrador de sistemas en Linux: SystemD, cuáles son sus funciones, utilidades y comandos básicos, no dudes en seguir formándote a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp.
Da el siguiente paso e inscríbete y en menos de 6 meses contarás con todas las herramientas necesarias para convertirte en un experto en estos temas y mejorar y agilizar el ciclo de vida de tus proyectos tecnológicos y destacar sobre tus competidores del sector IT.

Xoán Mallón

Senior DevOps Engineer en Zscaler & Coordinador del Bootcamp DevOps & Cloud Computing.

Posts más leídos

¡CONVOCATORIA ABIERTA!

DevOps & Cloud Computing

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado