Control de servicios en Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, obtendrás experiencia práctica en la gestión de servicios del sistema en RHEL utilizando el comando systemctl. Aprenderás a visualizar todos los servicios cargados y activos, verificar el estado de servicios específicos y controlar su comportamiento en tiempo de ejecución iniciándolos, deteniéndolos y reiniciándolos. Además, explorarás cómo recargar configuraciones de servicios, habilitar o deshabilitar servicios para su inicio automático durante el arranque, y comprenderás los conceptos avanzados de enmascaramiento y desenmascaramiento de servicios para impedir su activación.

Esta guía práctica te dotará de habilidades esenciales para la administración de sistemas, permitiéndote monitorear y gestionar eficazmente el ciclo de vida de los servicios cruciales para el funcionamiento de tu sistema RHEL.

Visualizar todos los servicios cargados y activos con systemctl

En este paso, aprenderás a identificar los procesos del sistema que se inician automáticamente utilizando el comando systemctl. systemctl es la herramienta principal para gestionar servicios de systemd en Red Hat Enterprise Linux.

Primero, exploremos cómo listar todas las unidades de servicio cargadas y activas actualmente. Para este propósito se utiliza el comando systemctl list-units --type=service. Este comando muestra las unidades de servicio que el demonio systemd ha analizado y cargado correctamente en la memoria, y que se encuentran activas en este momento.

Abre tu terminal en el entorno RHEL. Ya has iniciado sesión como usuario labex y tu directorio actual es ~/project.

Ejecuta el siguiente comando para listar todas las unidades de servicio cargadas y activas:

systemctl list-units --type=service

Verás una salida similar a esta, que muestra varios servicios y sus estados:

UNIT                  LOAD    ACTIVE  SUB      DESCRIPTION
atd.service           loaded  active  running  Job spooling tools
auditd.service        loaded  active  running  Security Auditing Service
chronyd.service       loaded  active  running  NTP client/server
crond.service         loaded  active  running  Command Scheduler
dbus-broker.service   loaded  active  running  D-Bus System Message Bus
...output omitted...

Analicemos las columnas de la salida:

  • UNIT: Es el nombre de la unidad de servicio, que normalmente termina en .service.
  • LOAD: Indica si el demonio systemd analizó correctamente la configuración de la unidad y la cargó en memoria. loaded significa que la operación fue exitosa.
  • ACTIVE: Es el estado de activación de alto nivel de la unidad. active generalmente significa que la unidad se inició correctamente.
  • SUB: Es el estado de activación de bajo nivel, que proporciona información más detallada. Para los servicios en ejecución, running es común.
  • DESCRIPTION: Una breve descripción de lo que hace el servicio.

Presiona q para salir del comando.

A continuación, puedes usar la opción --all con systemctl list-units --type=service para listar todas las unidades de servicio independientemente de sus estados de activación (activo, inactivo, fallido, etc.). Esto es útil para ver servicios que están instalados pero no se están ejecutando actualmente.

Ejecuta el siguiente comando:

systemctl list-units --type=service --all

La salida incluirá servicios que están inactive o en otros estados, proporcionando una vista más completa:

UNIT                          LOAD      ACTIVE   SUB     DESCRIPTION
  atd.service                 loaded    active   running Job spooling tools
  auditd.service              loaded    active   running Security Auditing ...
  auth-rpcgss-module.service  loaded    inactive dead    Kernel Module ...
  chronyd.service             loaded    active   running NTP client/server
  cpupower.service            loaded    inactive dead    Configure CPU power ...
  crond.service               loaded    active   running Command Scheduler
  dbus-broker.service         loaded    active   running  D-Bus System Message Bus
● display-manager.service     not-found inactive dead    display-manager.service
...output omitted...

Finalmente, para ver el estado de todos los archivos de unidad instalados, incluidos aquellos que no están cargados o activos, puedes usar systemctl list-unit-files --type=service. Este comando muestra si un servicio está enabled (se inicia al arrancar), disabled (no se inicia al arrancar), static (no se puede habilitar directamente pero podría ser iniciado por otra unidad) o masked (se impide su inicio).

Ejecuta el siguiente comando:

systemctl list-unit-files --type=service

Verás una salida similar a esta, que indica el STATE (estado) y el VENDOR PRESET (preajuste del proveedor) para cada archivo de unidad de servicio:

UNIT FILE                         STATE       VENDOR PRESET
arp-ethers.service                disabled    disabled
atd.service                       enabled     enabled
auditd.service                    enabled     enabled
auth-rpcgss-module.service        static      -
autovt@.service                   alias       -
blk-availability.service          disabled    disabled
...output omitted...

Este comando es particularmente útil para comprender qué servicios están configurados para iniciarse automáticamente cuando el sistema arranca.

Verificar el estado de un servicio específico con systemctl status

En este paso, aprenderás a verificar el estado detallado de un servicio específico utilizando el comando systemctl status. Este comando proporciona información completa sobre un servicio, incluyendo si se está ejecutando, su ID de proceso (PID), uso de memoria y entradas de registro recientes.

Usaremos crond.service (el demonio cron) como ejemplo. El demonio cron es un servicio común que gestiona tareas programadas.

Abre tu terminal en el entorno RHEL. Asegúrate de estar en tu directorio ~/project.

Ejecuta el siguiente comando para verificar el estado de crond.service:

systemctl status crond.service

Verás una salida detallada similar a esta:

● crond.service - Command Scheduler
     Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; preset: enabled)
     Active: active (running) since Mon 2022-03-14 05:38:10 EDT; 25min ago
   Main PID: 1089 (crond)
      Tasks: 1 (limit: 35578)
     Memory: 1.2M
        CPU: 12ms
     CGroup: /system.slice/crond.service
             └─1089 /usr/sbin/crond -n

Mar 14 05:38:10 workstation systemd[1]: Started Command Scheduler.
Warning: some journal files were not opened due to insufficient permissions.

Analicemos los campos clave de la salida:

  • Loaded: Esta línea te indica si el archivo de configuración de la unidad de servicio ha sido procesado. También muestra la ruta al archivo de unidad (/usr/lib/systemd/system/crond.service) y su estado de habilitación (enabled significa que está configurado para iniciarse al arrancar).
  • Active: Esto es crucial. Indica el estado actual del servicio. active (running) significa que el servicio está activo actualmente y sus procesos se están ejecutando. También muestra cuánto tiempo ha estado activo. Otros estados podrían ser inactive (no se está ejecutando), active (exited) (completó una tarea de una sola vez) o failed (encontró un error).
  • Main PID: El ID de proceso (PID) del proceso principal asociado con el servicio, junto con el nombre del comando.
  • Tasks: El número de tareas (hilos) que el servicio está utilizando actualmente.
  • Memory: La cantidad de memoria que el servicio está consumiendo.
  • CPU: El tiempo de CPU consumido por el servicio.
  • CGroup: Información sobre el grupo de control al que pertenece el servicio, que se utiliza para la gestión de recursos.
  • Las líneas debajo de CGroup muestran entradas de registro recientes relacionadas con el servicio, proporcionando información sobre su inicio y actividades en curso.

Además de systemctl status, existen comandos más sencillos para verificar rápidamente aspectos específicos del estado de un servicio:

  • Para verificar si un servicio está activo:

    systemctl is-active crond.service
    

    Salida esperada:

    active
    
  • Para verificar si un servicio está habilitado (configurado para iniciarse al arrancar):

    systemctl is-enabled crond.service
    

    Salida esperada:

    enabled
    
  • Para verificar si un servicio ha fallado:

    systemctl is-failed crond.service
    

    Salida esperada (si se ejecuta correctamente):

    active
    

    Si un servicio tuviera problemas al iniciarse o ejecutarse, este comando devolvería failed.

Estos comandos son útiles para scripts o verificaciones rápidas cuando no necesitas la salida detallada completa de systemctl status.

Iniciar, detener y reiniciar un servicio con systemctl

En este paso, aprenderás a gestionar el ciclo de vida de los servicios del sistema utilizando comandos de systemctl. Practicarás cómo iniciar, detener y reiniciar un servicio. Para este ejercicio, utilizaremos un servicio ficticio que crearemos nosotros mismos. Este enfoque garantiza que podamos manipular un servicio de forma segura sin afectar las funciones críticas del sistema.

Primero, creemos un archivo de unidad de servicio simple. Este archivo definirá un servicio que simplemente escribe una marca de tiempo en un archivo de registro cada pocos segundos.

Crea un nuevo archivo de unidad de servicio llamado mytest.service directamente en el directorio del sistema de systemd usando nano:

sudo nano /etc/systemd/system/mytest.service

Pega el siguiente contenido en el editor nano:

[Unit]
Description=My Test Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash -c 'while true; do echo "$(date): My Test Service is running." >> /tmp/mytest.log; sleep 5; done'
ExecStop=/bin/bash -c 'echo "$(date): My Test Service stopped." >> /tmp/mytest.log'
Restart=on-failure

[Install]
WantedBy=multi-user.target
  • [Unit]: Contiene información genérica sobre la unidad. Description proporciona un nombre legible por humanos, y After=network.target especifica que este servicio debe iniciarse después de que la red esté activa.
  • [Service]: Define el comportamiento del servicio.
    • Type=simple: Indica un tipo de servicio simple donde el comando ExecStart es el proceso principal.
    • ExecStart: El comando a ejecutar cuando se inicia el servicio. Aquí, es un bucle bash que escribe un mensaje con marca de tiempo en /tmp/mytest.log cada 5 segundos.
    • ExecStop: El comando a ejecutar cuando se detiene el servicio. Escribe un mensaje de detención en el registro.
    • Restart=on-failure: Configura el servicio para que se reinicie si sale con un estado distinto de cero.
  • [Install]: Contiene información sobre cómo debe instalarse el servicio. WantedBy=multi-user.target significa que este servicio debe iniciarse cuando el sistema alcance el nivel de ejecución multiusuario.

Guarda el archivo presionando Ctrl+X, luego Y para confirmar y Enter para guardar.

Ahora, recarga el demonio systemd para que reconozca el nuevo archivo de servicio:

sudo systemctl daemon-reload

Iniciar un servicio

Para iniciar un servicio, utiliza el comando systemctl start.

Ejecuta el siguiente comando para iniciar mytest.service. Ten en cuenta que debemos usar sudo porque las operaciones de systemctl normalmente requieren privilegios de root.

sudo systemctl start mytest.service

No habrá salida inmediata si el comando es exitoso.

Ahora, verifica que el servicio se esté ejecutando comprobando su estado:

systemctl status mytest.service

Deberías ver una salida que indique que el servicio está active (running):

● mytest.service - My Test Service
     Loaded: loaded (/etc/systemd/system/mytest.service; disabled; preset: disabled)
     Active: active (running) since ...
   Main PID: ... (bash)
      Tasks: 2 (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/mytest.service
             ├─... /bin/bash -c "while true; do echo \"\$(date): My Test Service is running.\" >> /tmp/mytest.log; sleep 5; done"
             └─... sleep 5

...output omitted...

También puedes verificar el archivo de registro para ver si el servicio está escribiendo mensajes:

tail -f /tmp/mytest.log

Deberías ver nuevas líneas apareciendo cada 5 segundos, similares a esta:

Tue Jul 22 09:15:09 AM CST 2025: My Test Service is running.
Tue Jul 22 09:15:14 AM CST 2025: My Test Service is running.

Presiona Ctrl+C para salir de tail.

Detener un servicio

Para detener un servicio en ejecución, utiliza el comando systemctl stop.

Ejecuta el siguiente comando para detener mytest.service:

sudo systemctl stop mytest.service

Nuevamente, no habrá salida inmediata.

Verifica que el servicio se haya detenido:

systemctl status mytest.service

La salida ahora debería mostrar Active: inactive (dead):

○ mytest.service - My Test Service
     Loaded: loaded (/etc/systemd/system/mytest.service; disabled; preset: disabled)
     Active: inactive (dead) since ...
...output omitted...

Verifica el archivo de registro /tmp/mytest.log nuevamente. Deberías ver el mensaje "My Test Service stopped." y no deberían aparecer nuevos mensajes de "running".

tail /tmp/mytest.log

La salida se verá similar a esta:

Tue Jul 22 09:15:24 AM CST 2025: My Test Service is running.
Tue Jul 22 09:15:28 AM CST 2025: My Test Service stopped.

Reiniciar un servicio

Para reiniciar un servicio, utiliza el comando systemctl restart. Este comando primero detiene el servicio y luego lo inicia de nuevo. Esto es útil cuando has realizado cambios en la configuración de un servicio y necesitas que surtan efecto.

Ejecuta el siguiente comando para reiniciar mytest.service:

sudo systemctl restart mytest.service

Verifica que el servicio se esté ejecutando de nuevo:

systemctl status mytest.service

Deberías ver Active: active (running) nuevamente, y el Main PID probablemente será un número nuevo, lo que indica que se ha iniciado un nuevo proceso.

● mytest.service - My Test Service
     Loaded: loaded (/etc/systemd/system/mytest.service; disabled; preset: disabled)
     Active: active (running) since ...
   Main PID: ... (bash)
      Tasks: 2 (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/mytest.service
             ├─... /bin/bash -c "while true; do echo \"\$(date): My Test Service is running.\" >> /tmp/mytest.log; sleep 5; done"
             └─... sleep 5
...output omitted...

Verifica el archivo de registro /tmp/mytest.log para confirmar que el servicio ha reanudado la escritura de mensajes "running".

tail -f /tmp/mytest.log

Deberías ver un mensaje de "stopped" seguido de nuevos mensajes de "running":

Tue Jul 22 09:15:28 AM CST 2025: My Test Service stopped.
Tue Jul 22 09:15:40 AM CST 2025: My Test Service is running.

Presiona Ctrl+C para salir de tail.

Aplicar cambios de configuración a un servicio

En este paso, aprenderás sobre la recarga de configuraciones de servicios. Algunos servicios pueden aplicar cambios a sus archivos de configuración sin necesidad de un reinicio completo. Esto se conoce como "recargar" el servicio. Generalmente, se prefiere la recarga sobre el reinicio porque evita el tiempo de inactividad del servicio y preserva las conexiones o estados existentes. Cuando se recarga un servicio, su ID de proceso (PID) normalmente permanece igual, a diferencia de un reinicio completo donde el PID cambia.

Continuaremos usando nuestro mytest.service del paso anterior. Modificaremos su comportamiento e intentaremos recargarlo para ver qué sucede.

Primero, asegúrate de que mytest.service esté ejecutándose. Si no es así, inícialo:

sudo systemctl start mytest.service

Verifica su estado y toma nota de su Main PID:

systemctl status mytest.service

Ahora, modifiquemos el archivo mytest.service para cambiar el mensaje que registra y el intervalo. Cambiaremos el mensaje de registro y la duración de sleep.

Abre /etc/systemd/system/mytest.service con nano:

sudo nano /etc/systemd/system/mytest.service

Cambia la línea ExecStart a la siguiente, modificando el mensaje y el tiempo de sleep de 5 a 2 segundos:

[Unit]
Description=My Test Service
After=network.target

[Service]
Type=simple
ExecStart=/bin/bash -c 'while true; do echo "$(date): My Test Service (reloaded) is running." >> /tmp/mytest.log; sleep 2; done'
ExecStop=/bin/bash -c 'echo "$(date): My Test Service stopped." >> /tmp/mytest.log'
Restart=on-failure

[Install]
WantedBy=multi-user.target

Guarda el archivo presionando Ctrl+X, luego Y y Enter.

Después de guardar los cambios, debes informar a systemd que la configuración del servicio ha cambiado.

sudo systemctl daemon-reload

Ahora, intentemos recargar el servicio para aplicar los cambios:

sudo systemctl reload mytest.service

Es probable que encuentres un error:

Failed to reload mytest.service: Job type reload is not applicable for unit mytest.service.

Este error ocurre porque nuestro servicio simple no está configurado para manejar una solicitud de recarga. Para que un servicio sea recargable, su archivo de unidad debe incluir una directiva ExecReload, que especifica el comando a ejecutar para recargar la configuración. Dado que a nuestro mytest.service le falta esto, systemd no sabe cómo recargarlo.

En situaciones como esta, systemd proporciona un comando conveniente: reload-or-restart. Este comando intentará recargar el servicio, pero si la recarga no es compatible, recurrirá al reinicio del servicio. A menudo, esta es una forma más segura y efectiva de aplicar cambios de configuración.

Usemos reload-or-restart ahora:

sudo systemctl reload-or-restart mytest.service

Este comando debería tener éxito. Ahora, verifica el estado del servicio nuevamente:

systemctl status mytest.service

Observa el Main PID. Dado que nuestro servicio se reinició (porque no pudo ser recargado), notarás que el Main PID es un número nuevo. Esto confirma que el proceso antiguo se detuvo y se inició uno nuevo con la configuración actualizada.

Finalmente, verifiquemos el archivo /tmp/mytest.log para ver si los cambios han surtido efecto.

tail -f /tmp/mytest.log

Deberías ver el nuevo mensaje de registro "My Test Service (reloaded) is running." apareciendo cada 2 segundos. Presiona Ctrl+C para salir de tail.

Habilitar y deshabilitar servicios al arrancar con systemctl

En este paso, aprenderás a configurar servicios para que se inicien automáticamente al arrancar el sistema (habilitar) o impedir que se inicien al arrancar (deshabilitar). Esto es crucial para gestionar los recursos del sistema y garantizar que los servicios necesarios estén disponibles cuando el sistema se inicia.

En un entorno systemd típico, habilitar un servicio crea enlaces simbólicos en los directorios de configuración de systemd apropiados (por ejemplo, /etc/systemd/system/multi-user.target.wants/) que apuntan al archivo de unidad del servicio. Deshabilitar un servicio elimina estos enlaces.

Dado que estamos en un entorno contenerizado donde systemd podría no estar completamente operativo en el sentido tradicional, los comandos enable y disable podrían no crear enlaces simbólicos reales en el directorio /etc/systemd/system que persistan tras los reinicios del contenedor. Sin embargo, systemctl sigue procesando estos comandos y actualizando su estado interno, que es lo que observaremos.

Continuaremos usando nuestro mytest.service para esta demostración.

Primero, asegúrate de que mytest.service esté detenido desde el paso anterior:

sudo systemctl stop mytest.service

Habilitar un servicio

Para habilitar un servicio, utiliza el comando systemctl enable. Este comando configura el servicio para que se inicie automáticamente cuando el sistema arranca.

Ejecuta el siguiente comando para habilitar mytest.service:

sudo systemctl enable mytest.service

Es posible que veas una salida similar a esta, que indica que se crearía un enlace simbólico en un entorno systemd completo:

Created symlink /etc/systemd/system/multi-user.target.wants/mytest.service → /etc/systemd/system/mytest.service.

Ahora, verifica que el servicio esté habilitado usando systemctl is-enabled:

systemctl is-enabled mytest.service

Salida esperada:

enabled

Esto confirma que systemctl ahora considera que mytest.service está habilitado para el arranque.

También puedes combinar la habilitación y el inicio de un servicio en un solo comando usando la opción --now. Esta es una forma conveniente de garantizar que un servicio esté tanto en ejecución inmediata como configurado para iniciarse en futuros arranques.

Primero, deshabilitémoslo para prepararnos para la demostración de --now:

sudo systemctl disable mytest.service

Ahora, habilítalo e inícialo simultáneamente:

sudo systemctl enable --now mytest.service

Verifica su estado y habilitación:

systemctl status mytest.service
systemctl is-enabled mytest.service

Deberías ver Active: active (running) desde el comando status y enabled desde el comando is-enabled.

Deshabilitar un servicio

Para deshabilitar un servicio, utiliza el comando systemctl disable. Este comando elimina la configuración que hace que el servicio se inicie al arrancar.

Ejecuta el siguiente comando para deshabilitar mytest.service:

sudo systemctl disable mytest.service

Es posible que veas una salida que indica la eliminación del enlace simbólico:

Removed /etc/systemd/system/multi-user.target.wants/mytest.service.

Ahora, verifica que el servicio esté deshabilitado:

systemctl is-enabled mytest.service

Salida esperada:

disabled

Al igual que con la habilitación, puedes combinar la deshabilitación y la detención de un servicio usando la opción --now. Esto detendrá el servicio inmediatamente y evitará que se inicie en futuros arranques.

sudo systemctl disable --now mytest.service

Verifica su estado y habilitación:

systemctl status mytest.service
systemctl is-enabled mytest.service

Deberías ver Active: inactive (dead) desde el comando status y disabled desde el comando is-enabled.

Esto concluye la demostración de habilitación y deshabilitación de servicios. Recuerda que en un entorno systemd real, estos comandos manipulan directamente la configuración de arranque.

Enmascarar y desenmascarar servicios con systemctl

En este paso final, aprenderás sobre el enmascaramiento (masking) y desenmascaramiento (unmasking) de servicios. Enmascarar un servicio es una forma poderosa de evitar que se inicie, ya sea manualmente o automáticamente al arrancar.

Cuando enmascaras un servicio, systemd crea un enlace simbólico desde /etc/systemd/system/<service-name>.service a /dev/null, haciendo que el archivo de unidad del servicio no esté disponible para systemd. Esta es una alternativa más fuerte que disable.

Este mecanismo funciona mejor para los servicios que están definidos en /usr/lib/systemd/system, que es donde los paquetes instalan sus archivos de servicio. El comando mask crea un archivo "vacío" de anulación en /etc/systemd/system. Sin embargo, como has descubierto, si intentas enmascarar un servicio que creaste directamente en /etc/systemd/system (como nuestro mytest.service), el comando puede fallar porque está diseñado para no sobrescribir un archivo de configuración existente, lo que causaría pérdida de datos.

Para demostrar el enmascaramiento correctamente, usaremos un servicio preexistente, atd.service.

Primero, verifiquemos el estado actual de atd.service. Debería estar activo y habilitado.

systemctl status atd.service

La salida será similar a esta, mostrando que el servicio está activo y en ejecución:

● atd.service - Deferred execution scheduler
     Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-07-22 09:13:06 CST; 22min ago
       Docs: man:atd(8)
   Main PID: 1222 (atd)
      Tasks: 1 (limit: 22509)
     Memory: 900.0K
        CPU: 5ms
     CGroup: /system.slice/atd.service
             └─1222 /usr/sbin/atd -f

Enmascarar un servicio

Es una buena práctica detener un servicio antes de enmascararlo.

sudo systemctl stop atd.service

Ahora, ejecuta el siguiente comando para enmascarar atd.service:

sudo systemctl mask atd.service

Verás una salida que indica la creación de un enlace simbólico a /dev/null:

Created symlink /etc/systemd/system/atd.service → /dev/null.

Ahora, intenta iniciar el servicio enmascarado:

sudo systemctl start atd.service

Recibirás un mensaje de error, indicando que el servicio está enmascarado:

Failed to start atd.service: Unit atd.service is masked.

También puedes verificar el estado del servicio usando systemctl list-unit-files:

systemctl list-unit-files --type=service | grep atd.service | tee ~/project/atd-mask-state.txt

La salida debería mostrar masked para atd.service:

atd.service                            masked      enabled

Esto confirma que el servicio ahora está enmascarado y no se puede iniciar.

Desenmascarar un servicio

Para desenmascarar un servicio, utiliza el comando systemctl unmask. Este comando elimina el enlace simbólico a /dev/null, restaurando el archivo de servicio original desde /usr/lib/systemd/system.

Ejecuta el siguiente comando para desenmascarar atd.service:

sudo systemctl unmask atd.service

Verás una salida que indica la eliminación del enlace simbólico:

Removed "/etc/systemd/system/atd.service".

Después de desenmascarar, inicia el servicio nuevamente porque unmask solo elimina el enlace a /dev/null y no reinicia el servicio por ti.

sudo systemctl start atd.service

Ahora, verifica el estado del servicio:

systemctl status atd.service

Deberías ver Active: active (running), similar a esto:

● atd.service - Deferred execution scheduler
     Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-07-22 09:36:10 CST; 2s ago
       Docs: man:atd(8)
   Main PID: 7372 (atd)
      Tasks: 1 (limit: 22509)
     Memory: 868.0K
        CPU: 6ms
     CGroup: /system.slice/atd.service
             └─7372 /usr/sbin/atd -f

Esto concluye el laboratorio sobre el control de servicios y demonios. Has aprendido cómo visualizar, iniciar, detener, reiniciar, recargar, habilitar, deshabilitar, enmascarar y desenmascarar servicios usando systemctl.

Resumen

En este laboratorio, obtuvimos experiencia práctica en la gestión de servicios del sistema de control utilizando el comando systemctl, incluso dentro de un entorno contenerizado donde systemd podría no ser el sistema de inicio principal. Aprendimos cómo listar todas las unidades de servicio cargadas y activas usando systemctl list-units --type=service, comprendiendo las columnas UNIT, LOAD, ACTIVE y SUB para interpretar los estados de los servicios.

Además, exploramos operaciones esenciales de gestión de servicios: verificar el estado de un servicio específico con systemctl status y controlar el ciclo de vida del servicio iniciando, deteniendo y reiniciando servicios. También cubrimos cómo recargar configuraciones de servicios, habilitar y deshabilitar servicios para controlar su comportamiento al arrancar, y los conceptos avanzados de enmascaramiento y desenmascaramiento de servicios para evitar que se inicien. Este conjunto integral de habilidades proporciona una base sólida para gestionar servicios en sistemas RHEL.