LINUX

¿Qué es Linux Systemd y sus componentes?

Systemd es un administrador de sistemas y servicios diseñado específicamente para el kernel de Linux. Reemplaza el proceso de inicio para convertirse en el primer proceso (PID = 1) que se ejecuta en el espacio del usuario durante el proceso de inicio de Linux. En este tutorial, estudiaremos los conceptos básicos de systemd.

Nota: El término ‘init’ en este tutorial se refiere a ‘sysvinit’.

¿Por qué systemd?

Suele ser la primera pregunta que me viene a la mente. Para comprender la respuesta, primero debemos comprender un poco acerca de init. Si simplemente nos olvidamos de systemd y otros sistemas similares, entonces es seguro decir que init es el primer proceso que inicia el kernel cuando arranca cualquier computadora Linux o Unix. Esto significa que todos los demás procesos son sus hijos de una forma u otra.

Una vez que el sistema se enciende con éxito, el proceso de inicio continúa ejecutándose y espera comandos especiales como ‘shutdown’, que se utilizan para apagar un sistema Linux. En resumen, ahora la tarea del proceso de inicio es apagar el sistema de manera ordenada.

Durante años, init siguió siendo un sistema perfecto para activar y desactivar sistemas basados ​​en Linux. Pero a medida que pasaba el tiempo, el sistema se volvió lento e inflexible, especialmente para las computadoras modernas.

Por lo tanto, se propuso upstart en 2006 y systemd en 2010 para reemplazar el sistema init existente y ampliamente utilizado. Ambos sistemas tenían sus propios partidarios, y después de un largo conflicto systemd fue elegido como el nuevo sistema para reemplazar init.

Systemd vs Init Cheatsheet muestra una comparación entre los comandos en dos sistemas.
linux systemd

Instalación de systemd

Ahora systemd viene habilitado de forma predeterminada en varios sistemas basados ​​en Linux como Arch, Debian, Fedora y Ubuntu. Puede instalar systemd manualmente si busca una versión específica.

Administrar servicios con systemd

Aquí hay una lista de algunas utilidades útiles de systemd junto con una breve descripción de lo que hacen:

  • systemctl: controla el sistema y los servicios de systemd.
  • journalctl: para administrar el diario, el propio sistema de registro de systemd
  • hostnamectl: Control del nombre de host.
  • localectl: configura la distribución local y del teclado del sistema.
  • timedatectl: establece la hora y la fecha.
  • systemd-cgls: muestra el contenido de cgroup.
  • systemadm: Front-end para el comando systemctl.

Consideremos algunos ejemplos básicos que involucran la utilidad systemctl.

Para mostrar el estado de todos los controles de systemd, simplemente ejecute el comando sin opciones:

$ systemctl

Para ver todos los servicios disponibles, en ejecución o no, ejecute el siguiente comando:

$ systemctl list-units --type service --all

El comando anterior mostrará mucha información. En caso de que solo esté interesado en las unidades de servicio cargadas actualmente, ejecute el siguiente comando:

$ systemctl list-units --type service

Para iniciar un servicio:

$ systemctl start [service-name]

Para detener un servicio:

$ systemctl stop [service-name]

Para reiniciar un servicio:

$ systemctl restart [service-name]

Para habilitar un servicio en el arranque:

$ systemctl enable [service-name]

Para deshabilitar un servicio para que no se inicie en el arranque:

$ systemctl disable [service-name]

Para verificar el estado de un servicio, ejecute el siguiente comando:

$ systemctl status [service-name]

Para ver si un servicio ya se está ejecutando, ejecute el siguiente comando:

$ systemctl is-enabled [service-name]; echo $?

Por ejemplo:

$ systemctl is-enabled sshd.service; echo $?

Si el resultado es 0, significa que el servicio se está ejecutando actualmente y 1 significa que no.

Para apagar o reiniciar el sistema, puede usar los siguientes comandos:

systemctl halt
systemctl poweroff
systemctl reboot

El concepto de cgroups

Systemd organiza y administra procesos con cgroups, un mecanismo para limitar, contabilizar y aislar el uso de recursos del Kernel. En términos sencillos, es una colección de procesos que están sujetos a un criterio común.

Estos grupos pueden ser jerárquicos y cada grupo hereda límites de su padre. A medida que se generan nuevos procesos, se convierten en miembros del cgroup del padre.

Un cgroup recibe el nombre del servicio al que pertenece, y en caso de que necesite eliminar un servicio, puede simplemente eliminar su cgroup, eliminando todos sus procesos de una sola vez.

En el vocabulario de cgroups, cada recurso del sistema como CPU, memoria, entrada / salida de disco, ancho de banda se denomina subsistema o controlador de recursos. El kernel de Linux proporciona acceso a varios subsistemas (como memoria, CPU y más) a través de estos cgroups.

El servicio cgconfig se utiliza para administrar jerarquías y cgroups en su sistema. Para habilitar el servicio cgconfig con systemd, ejecute el siguiente comando:

$ systemctl enable cgconfig.service

Para verificar el estado o rastrear cualquier error, ejecute el siguiente comando:

$ systemctl status cgconfig.service

Nota: Para instalar las utilidades para administrar cgroups, necesita instalar el paquete libcgroup.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar