Cómo comprobar si un servicio está activo 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ás cómo verificar el estado de los servicios que se ejecutan en un sistema Linux. Exploraremos diferentes métodos, comenzando con el moderno comando systemctl status, comprendiendo su salida y significado incluso en entornos donde la ejecución directa está limitada.

A continuación, aprenderás cómo usar el comando service, más antiguo pero aún relevante, para confirmar el estado del servicio y, finalmente, verificar el proceso en ejecución asociado con un servicio utilizando el comando ps aux. Esta experiencia práctica te proporcionará las habilidades esenciales para monitorear y administrar servicios en Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") subgraph Lab Skills linux/echo -.-> lab-558679{{"Cómo comprobar si un servicio está activo en Linux"}} linux/grep -.-> lab-558679{{"Cómo comprobar si un servicio está activo en Linux"}} linux/ps -.-> lab-558679{{"Cómo comprobar si un servicio está activo en Linux"}} linux/service -.-> lab-558679{{"Cómo comprobar si un servicio está activo en Linux"}} end

Verificar el estado del servicio utilizando systemctl status

En este paso, aprenderás cómo verificar el estado de los servicios del sistema utilizando el comando systemctl. Los servicios son programas en segundo plano que se ejecutan en tu sistema, como servidores web, servidores de bases de datos o demonios de red.

Si bien no puedes usar directamente systemctl en este entorno específico de LabEx (debido a que se ejecuta en un contenedor Docker), entender cómo funciona es fundamental para administrar servicios en un sistema Linux real. Simularemos el concepto y te mostraremos el uso típico del comando.

En un sistema Linux estándar que utiliza systemd (lo cual es común en distribuciones modernas como Ubuntu), utilizarías systemctl status seguido del nombre del servicio para verificar si un servicio está en ejecución, activo o ha fallado.

Por ejemplo, para verificar el estado del servicio ssh (que gestiona los inicios de sesión remotos seguros), normalmente ejecutarías:

systemctl status ssh

La salida se vería algo así (los detalles exactos pueden variar):

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: ... (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Cosas clave a buscar en la salida:

  • Loaded: Muestra si la configuración del servicio se cargó correctamente.
  • Active: Indica el estado actual del servicio (por ejemplo, active (running), inactive (dead), failed).
  • Main PID: El ID de proceso del proceso principal del servicio.

Aunque no puedes ejecutar systemctl aquí, es importante conocer este comando para administrar servicios en otros sistemas Linux.

Para simular la verificación del estado de un servicio y practicar la ejecución de comandos, usemos echo nuevamente para imprimir un mensaje que indique que has aprendido sobre systemctl status.

Escribe el siguiente comando en tu terminal:

echo "Learned about systemctl status"

Presiona Enter.

Este comando simplemente confirma que has leído y comprendido el concepto de usar systemctl status.

Haz clic en Continuar para continuar.

Confirmar el servicio con la salida del comando service

En este paso, aprenderás sobre otro comando utilizado para administrar servicios, el comando service. Este comando se utiliza a menudo en sistemas que no usan systemd o para la compatibilidad con sistemas de inicio (init) más antiguos.

El comando service proporciona una interfaz más sencilla para iniciar, detener, reiniciar y verificar el estado de los servicios.

La sintaxis básica para verificar el estado de un servicio utilizando el comando service es:

service <service-name> status

Al igual que con systemctl, reemplazarías <service-name> con el nombre real del servicio que deseas verificar.

Por ejemplo, en un sistema donde el servidor web apache2 está instalado y administrado por el comando service, verificarías su estado de la siguiente manera:

service apache2 status

La salida normalmente indicaría si el servicio está en ejecución o no.

Una vez más, aunque no puedes ejecutar este comando directamente en este entorno de LabEx debido a su naturaleza de contenedor, entender el comando service es valioso para trabajar con diferentes sistemas Linux.

Para confirmar que has aprendido sobre el comando service, utiliza el comando echo para imprimir un mensaje de confirmación.

Escribe el siguiente comando en tu terminal:

echo "Understood service command"

Presiona Enter.

Esta acción sirve como una señal de que has completado este paso y has aprendido sobre el comando service.

Haz clic en Continuar para pasar al siguiente paso.

Verificar el proceso del servicio en ejecución con ps aux

En este paso, aprenderás cómo verificar si un servicio está en ejecución buscando sus procesos asociados utilizando el comando ps aux. Esta es una forma fundamental de ver qué programas se están ejecutando actualmente en tu sistema.

El comando ps muestra una instantánea de los procesos actuales. Las opciones aux se utilizan comúnmente para mostrar los procesos de todos los usuarios (a), incluyendo aquellos que no están asociados a un terminal (x), y para mostrar información detallada en un formato amigable para el usuario (u).

Cuando un servicio está en ejecución, normalmente tiene uno o más procesos asociados a él. Puedes usar ps aux y canalizar su salida a grep para filtrar los procesos relacionados con un servicio específico.

Por ejemplo, para ver si hay algún proceso relacionado con el servicio ssh, usarías:

ps aux | grep ssh

Intentemos esto en nuestro entorno de LabEx. Sabemos que la terminal en sí es un proceso en ejecución. Usemos ps aux para encontrar el proceso de nuestra shell zsh.

Escribe el siguiente comando en tu terminal:

ps aux | grep zsh

Presiona Enter.

Deberías ver una salida similar a esta:

labex       ...  ...  ...  ... ?        Ss   ... ...:.. /usr/bin/zsh
labex       ...  ...  ...  ... ?        S+   ... ...:.. grep --color=auto zsh

La primera línea muestra el proceso zsh (tu shell de terminal), y la segunda línea muestra el comando grep que acabas de ejecutar (¡que también es un proceso!).

Este método (ps aux | grep <service-name>) es una forma poderosa de confirmar si un servicio realmente está en ejecución comprobando sus procesos activos, especialmente cuando los comandos systemctl o service no estén disponibles o no proporcionen suficiente detalle.

Para completar este paso, usa echo para confirmar que has practicado el uso de ps aux con grep.

Escribe el siguiente comando:

echo "Practiced ps aux with grep"

Presiona Enter.

Haz clic en Continuar para finalizar el laboratorio.

Resumen

En este laboratorio, has aprendido cómo verificar el estado de los servicios en Linux utilizando varios métodos. Se te presentó el comando systemctl status, que es la forma estándar de verificar el estado de los servicios en los sistemas Linux modernos que utilizan systemd, aunque la ejecución directa se simuló debido al entorno del laboratorio. También aprendiste cómo confirmar el estado del servicio utilizando el comando service, que es más antiguo, y cómo verificar un proceso de servicio en ejecución examinando la lista de procesos con ps aux. Estos pasos proporcionan un enfoque integral para determinar si un servicio específico está activo y en ejecución en un sistema Linux.