Cómo comprobar si una unidad de systemd está habilitada en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar el estado de las unidades de systemd en Linux. Utilizará el comando systemctl is-enabled para determinar si una unidad está configurada para iniciarse automáticamente al arrancar el sistema, y el comando systemctl list-units para enumerar las unidades activas. Finalmente, explorará la ubicación de los archivos de unidades de systemd en el directorio /etc/systemd. Este laboratorio le proporcionará las habilidades esenciales para administrar servicios y comprender el proceso de inicialización de systemd.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/ls -.-> lab-558771{{"Cómo comprobar si una unidad de systemd está habilitada en Linux"}} linux/cat -.-> lab-558771{{"Cómo comprobar si una unidad de systemd está habilitada en Linux"}} linux/cd -.-> lab-558771{{"Cómo comprobar si una unidad de systemd está habilitada en Linux"}} linux/grep -.-> lab-558771{{"Cómo comprobar si una unidad de systemd está habilitada en Linux"}} linux/ps -.-> lab-558771{{"Cómo comprobar si una unidad de systemd está habilitada en Linux"}} linux/service -.-> lab-558771{{"Cómo comprobar si una unidad de systemd está habilitada en Linux"}} end

Verificar el estado de la unidad con systemctl is-enabled

En este paso, aprenderá cómo verificar el estado de las unidades de systemd utilizando el comando systemctl is-enabled.

Systemd es un administrador de sistema y servicios para Linux. Gestiona los procesos después del proceso de arranque inicial. Una "unidad" en systemd se refiere a un archivo de configuración que describe cómo se debe manejar un servicio, dispositivo, punto de montaje u otro recurso del sistema.

El comando systemctl is-enabled verifica si una unidad está configurada para iniciarse automáticamente al arrancar el sistema. Esto es importante para los servicios que desea ejecutar siempre que el sistema se inicie.

Vamos a verificar el estado del servicio ssh. El servicio SSH (Secure Shell) le permite conectarse a su servidor de forma remota.

Abra su terminal si no está abierta. Puede encontrar el icono de Xfce Terminal en el lado izquierdo de su escritorio.

Escriba el siguiente comando y presione Enter:

systemctl is-enabled ssh

Debería ver una salida similar a esta:

enabled

Esta salida indica que el servicio ssh está configurado para iniciarse automáticamente cuando el sistema arranca.

Ahora, vamos a verificar el estado de un servicio que puede no estar habilitado por defecto, como apache2 (un servidor web).

Escriba el siguiente comando y presione Enter:

systemctl is-enabled apache2

Puede ver una salida como esta:

disabled

Esto significa que el servicio apache2 no está configurado para iniciarse automáticamente al arrancar el sistema.

Comprender si un servicio está habilitado o deshabilitado es crucial para administrar su sistema y garantizar que los servicios necesarios se estén ejecutando después de un reinicio.

Recuerde, el comando systemctl is-enabled solo le dice si un servicio está configurado para iniciarse al arrancar el sistema, no si está en ejecución actualmente. Aprenderá cómo verificar si un servicio está en ejecución en un paso posterior.

Haga clic en Continuar para pasar al siguiente paso.

Listar unidades con systemctl list-units

En este paso, aprenderá cómo listar las unidades activas de systemd utilizando el comando systemctl list-units.

Mientras que systemctl is-enabled le dice si una unidad está configurada para iniciarse al arrancar el sistema, systemctl list-units le muestra qué unidades están actualmente cargadas y activas en la memoria del sistema. Esto es útil para ver qué servicios, dispositivos y otros recursos están siendo administrados actualmente por systemd.

Abra su terminal si no está abierta.

Escriba el siguiente comando y presione Enter:

systemctl list-units

Verá una larga lista de unidades. La salida normalmente incluye columnas como:

  • UNIT: El nombre de la unidad.
  • LOAD: Si la configuración de la unidad se ha cargado en la memoria.
  • ACTIVE: El estado de activación general de la unidad (por ejemplo, active, inactive, failed).
  • SUB: El estado de activación detallado de la unidad (por ejemplo, running, exited, waiting).
  • DESCRIPTION: Una breve descripción de la unidad.

La lista puede ser bastante extensa. Para que sea más manejable, puede filtrar la salida. Por ejemplo, para ver solo las unidades de servicio (unidades que terminan en .service), puede usar:

systemctl list-units --type service

Este comando le mostrará una lista de todos los servicios actualmente activos.

También puede usar grep para buscar unidades específicas dentro de la salida. Por ejemplo, para encontrar el servicio ssh:

systemctl list-units | grep ssh

Esto le mostrará la línea correspondiente a la unidad ssh.service si está activa.

El comando systemctl list-units es una herramienta poderosa para entender el estado actual de su sistema y los procesos que está administrando systemd. Experimente con diferentes opciones y grep para encontrar la información que necesita.

Haga clic en Continuar para pasar al siguiente paso.

Inspeccionar archivos de unidad en /etc/systemd

En este paso, explorará dónde systemd almacena sus archivos de configuración de unidades y cómo ver su contenido.

Los archivos de unidad de systemd, que definen cómo se gestionan los servicios y otros recursos, generalmente se encuentran en el directorio /etc/systemd/system/. Este directorio contiene archivos de unidad instalados por el administrador del sistema o por paquetes.

Vamos a navegar a este directorio y listar su contenido.

Abra su terminal si no está abierta.

Primero, cambie su directorio actual a /etc/systemd/system/ utilizando el comando cd:

cd /etc/systemd/system/

Ahora, liste los archivos en este directorio utilizando el comando ls:

ls

Verá una lista de archivos .service, .target y otros archivos de unidad. Estos archivos contienen las instrucciones para systemd sobre cómo manejar cada unidad.

Vamos a inspeccionar el contenido del archivo ssh.service utilizando el comando cat. Recuerde, actualmente está en el directorio /etc/systemd/system/, por lo que puede hacer referencia al archivo directamente por su nombre.

cat ssh.service

Verá el contenido del archivo ssh.service. Este archivo es un archivo de texto plano con diferentes secciones y directivas que le indican a systemd cómo iniciar, detener y gestionar el servicio SSH.

Por ejemplo, puede ver secciones como [Unit], [Service] y [Install].

  • La sección [Unit] contiene información general sobre la unidad y sus dependencias.
  • La sección [Service] define los comandos a ejecutar para iniciar y detener el servicio.
  • La sección [Install] contiene información sobre cómo debe instalarse y habilitarse la unidad.

Comprender la estructura y el contenido de estos archivos de unidad es fundamental para la administración avanzada del sistema con systemd. Si bien los detalles pueden ser complejos, simplemente saber dónde encontrarlos y cómo verlos es un gran comienzo.

Puede usar less en lugar de cat para ver el contenido del archivo página por página, lo cual es útil para archivos más grandes:

less ssh.service

Presione q para salir de less.

Haga clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar si una unidad de systemd está habilitada para iniciar automáticamente al arrancar el sistema utilizando el comando systemctl is-enabled. Practicaste esto verificando el estado de los servicios ssh y apache2, comprendiendo que "enabled" significa que la unidad se iniciará al arrancar el sistema, mientras que "disabled" significa que no se iniciará.

También aprendiste cómo listar las unidades activas de systemd utilizando el comando systemctl list-units, que proporciona una visión más amplia de las unidades actualmente en ejecución o cargadas en el sistema. Finalmente, exploraste cómo inspeccionar los archivos de configuración de las unidades de systemd ubicados en el directorio /etc/systemd, obteniendo información sobre cómo se definen y configuran las unidades.