Cómo usar Systemd para enumerar servicios

Todas las distribuciones de Linux convencionales utilizan Systemd, un sistema de inicio que funciona en función de habilitar y deshabilitar archivos de «servicio». Si está intentando enumerar estos archivos de servicio pero no sabe cómo hacerlo, deberá utilizar el comando systemctl.

En esta guía, repasaremos las diversas formas en que puede enumerar los archivos de servicio de Systemd en Linux. Para comenzar, asegúrese de que está usando un sistema operativo Linux con Systemd. Luego, abra una ventana de terminal y sígala.

Use Systemd para enumerar los servicios activos

Si está utilizando mucho Systemd, en algún momento, es posible que desee saber qué servicios están activos mientras se inicia su sistema Linux. Enumerar los servicios activos es muy fácil y puede hacerlo con el comando systemctl –type = service systemctl –type = service –state = running.

Este comando, cuando se ejecuta, mostrará una tabla de todos los servicios, si están activos, así como una breve descripción. Para ejecutar este programa, abra una ventana de terminal. Una vez que la ventana de la terminal esté abierta, ejecute el siguiente comando.

systemctl --type=service --state=running

Si está tratando de filtrar todos los servicios activos para un servicio en particular, mirar esta gran tabla puede ser bastante tedioso. Afortunadamente, el comando systemctl se puede combinar con el comando grep como mecanismo de filtrado.

Por ejemplo, para comprobar si «snapd.service» se está ejecutando y cargado, puede ejecutar systemctl –type = service –state = running | grep ‘snapd’, y la salida solo mostrará el servicio Snapd, en lugar de toda la tabla.

systemctl --type=service --state=running | grep 'snapd'

Si desea guardar la salida de la tabla en un archivo de texto para más adelante, use el siguiente comando.

systemctl --type=service --state=runningrunning > ~/active-services.txt

Para ver el archivo de texto en cualquier momento, ejecute el comando cat a continuación.

cat ~/active-services.txt

Use Systemd para enumerar los servicios inactivos

Enumerar los servicios activos de Systemd es útil, pero ¿qué pasa con los inactivos? Sí, también es posible enumerarlos. Así es cómo. Primero, abra una ventana de terminal.

Una vez que la ventana de la terminal esté abierta y lista para usar, ejecute el comando systemctl –type = service pero en el –state = slot, coloque «inactive» en lugar de «running». Al hacer esto, puede ver qué servicios de Systemd están inactivos en su sistema Linux.

systemctl --type=service --state=inactive

Al igual que con los servicios activos, Systemd creará una tabla agradable y ordenada y le mostrará qué servicios de Systemd están inactivos, muertos y no en uso. Si desea filtrar a través de esta tabla para encontrar si un servicio específico está muerto, puede combinarlo con el comando grep.

Por ejemplo, para determinar si el archivo «updatedb.service» está inactivo, puede combinar systemctl –type = service –state = inactive con el comando grep siguiente para buscarlo en la tabla.

systemctl --type=service --state=inactive | grep 'updatedb.service'

Si necesita guardar todos los archivos de servicio de Systemd inactivos en un archivo de texto para leerlos más tarde, use el siguiente comando.

systemctl --type=service --state=inactive > ~/inactive-services.txt

Para leer este archivo de texto directamente desde la ventana de terminal, use el comando cat.

cat  ~/inactive-services.txt

Use Systemd para enumerar todos los servicios instalados

Si necesita ver todos los servicios Systemd instalados, ya sea que estén activos o no, deberá usar el comando systemctl list-unit-files –type = service y excluir el parámetro de línea de comandos –state. Al excluir –state, Systemd podrá enumerar todos y cada uno de los archivos de servicio en su computadora con facilidad.

systemctl list-unit-files --type=service

Una vez que se ejecuta el comando anterior, Systemd imprimirá una tabla con cada archivo de servicio en el sistema. Desde aquí, puede ordenar la tabla para encontrar el archivo de servicio que necesita.

Si no puede encontrar un archivo de servicio específico, puede combinar el comando systemctl list-unit-files –type = service con el comando grep para usar un filtro. Con el siguiente comando, filtre la tabla para encontrar el archivo de servicio que necesita.

systemctl list-unit-files --type=service | grep 'my-service'

¿Quiere exportar todos los servicios de Systemd a un archivo de texto para leer más adelante? Ejecute el siguiente comando.

systemctl list-unit-files --type=service > ~/service-files.txt

Puede ver el archivo de texto en cualquier momento con el comando cat a continuación.

cat ~/service-files.txt

Utilice Systemd para mostrar el estado del servicio individual

Si bien es útil saber cómo enumerar todos los servicios de Systemd, los que están activos e inactivos, también es útil saber cómo enumerar el estado de los servicios individualmente. He aquí cómo hacerlo.

Primero, abre una ventana de terminal. Una vez que la ventana de la terminal esté abierta, use el comando systemctl status en un servicio en particular. Por ejemplo, para encontrar el estado de «NetworkManager.service», se ejecuta el siguiente comando.

systemctl status NetworkManager

Si desea exportar el resultado del comando de estado a un archivo de texto para leerlo más tarde, puede ingresar el comando a continuación.

systemctl status MyService > ~/MyService-status.txt

Para ver este archivo, ejecute el siguiente comando cat.

cat ~/MyService-status.txt