En el siguiente artículo veremos varios métodos para comprobar el estado de los servicios que estan disponibles en nuestro sistema operativo. De este forma podremos ver si un servicio está activo, inactivo, enmascarado, etc. Los pasos a seguir para conseguir nuestro objetivo seran los siguientes.
VER EL ESTADO DE UN DETERMINADO SERVICIO
En ocasionamos necesitamos conocer información sobre un determinado servicio o unidad. Un ejemplo de la información que podemos necesitar es la siguiente:
- Ver si el proceso o unidad está activo o inactivo.
- Conocer la fecha y hora en que arranco un proceso.
- Saber el identificador de proceso de un determinado servicio.
- Ver si un servicio está configurado para que se inicie en al arranque del sistema.
- Información relativa al control de grupos.
- Etc.
Para conocer este tipo de información tan solo tenemos que abrir una terminal y ejecutar el comando systemctl status seguido del nombre del proceso.
Por lo tanto si queremos obtener información relativa al servicio dnscrypt-proxy tenemos que ejecutar el siguiente comando:
systemctl status dnscrypt-proxy.service
Después de ejecutar el comando obtendremos la siguiente información:
● |
AVERIGUAR SI UN SERVICIO ESTÁ ACTIVO
Para saber si un proceso está activo o inactivo tenemos ejecutar el comando systemctl is-active seguido del nombre del proceso que queremos ver si está activo.
Por lo tanto, para ver si el servicio estático initrd-cleanup está activo tenemos que ejecutar el siguiente comando en la terminal:
systemctl is-active initrd-cleanup
En mi caso después de ejecutar el comando he podido constatar que el proceso no está activo.
Inactive
CONOCER EL ESTADO DE LA TOTALIDAD DE SERVICIOS
Para obtener un listado de la totalidad de servicios y saber si están habilitados o deshabilitados tenemos que ejecutar el siguiente comando en la terminal:
systemctl list-unit-files --type service --all
Una vez ejecutado el comando obtenemos el siguiente resultado:
|
Si leemos los resultados aparecerán la totalidad de servicios conjuntamente con su estado. El significado de cada uno de los estados es el siguiente:
Enabled: El servicio está habilitado, se está usando o está disponible para su uso.
Disabled: El servicio está deshabilitado. Si lo necesitamos lo podemos habilitar sin mayor problema.
Masked: El servicio está completamente deshabilitado y no se puede iniciar de ningún modo sin previamente desenmascararlo.
Static: Servicios que únicamente se usarán en el caso que otro servicio o unidad lo precise. Estos servicios pueden estar activos o inactivos, pero siempre están disponibles para cuando se necesite usarlos. Estos servicios no se pueden activar ni desactivar, pero se pueden enmascarar.
Generated: Servicio que ha sido iniciado a través de un initscript SysV o LSB con systemd generator.
En el caso que encuentren estados no mencionados en este apartado, pueden obtener información abriendo una terminal y ejecutando el siguiente comando:
man systemctl
Una vez ejecutado el comando podrán ver una explicación del significado de cada uno de los estados.
OBTENER INFORMACIÓN DE LA TOTALIDAD DE SERVICIOS
Para obtener un listado de la totalidad de servicios, independientemente de si están activos o inactivos, tenemos que ejecutar el siguiente comando en la terminal:
systemctl list-units --type service --all
El resultado que obtendremos será parecido al siguiente:
|
Los datos que podemos consultar en el listado que acabamos de obtener son los siguientes:
La columna LOAD de este listado nos muestra información sobre si los servicios estan cargados o no. El valor loaded indica que el archivo de configuración del servicio ha sido procesado. El valor not-found indica lo contrario.
En la columna ACTIVE podremos ver si un servicio está activo o inactivo.
Finalmente, la columna SUB complementa la información de la columna ACTIVE detallando con más precisión el estado de cada servicio. En esta columna podemos encontrar los siguientes valores:
- running: El servicio se está activo y ejecutándose en estos momentos.
- exited: El servicio se ha ejecutado en algún momento, pero en estos momentos systemd no es capaz de detectar si el servicio está corriendo. Este caso se acostumbra a dar cuando por ejemplo se carga el fichero de configuración del servicio y a posteriori el servicio pasa a ser controlado por el kernel sin la necesidad que ningún demonio esté corriendo.
- dead: El servicio está completamente inactivo.
OBTENER INFORMACIÓN DE LOS SERVICIOS ACTIVOS
Para obtener un listado de la totalidad de servicios que actualmente están activos tenemos que ejecutar el siguiente comando en la terminal:
systemctl list-units --type service
El resultado que obtendremos será parecido al siguiente:
|
El significado de los parámetros obtenidos se interpreta del mismo modo que en el apartado anterior.
AVERIGUAR SI UN SERVICIOS O UNIDAD FALLA DURANTE EL ARRANQUE DE NUESTRO SISTEMA OPERATIVO
Para obtener un listado de la totalidad de servicios que fallan al iniciar el sistema operativo hay que ejecutar el siguiente comando en la terminal:
systemctl list-unit-files --state=failed
Una vez ejecutado el comando veremos los servicios y unidades que no se han podido iniciar durante el inicio del sistema. En el caso de encontrar errores tendremos que buscar una solución.
CONOCER EL ESTADO DE UN SERVICIO O UNIDAD MEDIANTE UNA INTERFAZ GRÁFICA
Existen interfaces gráficas para poder ver, e incluso gestionar, los servicios y unidades de nuestro sistema operativo. Por ejemplo en Debian existe systemd-ui. Para instalarlo tanto solo tienen que ejecutar el siguiente comando en la terminal:
sudo apt-get install systemd-ui
Una vez instalado el paquete abrimos una terminal y ejecutamos el siguiente comando:
systemadm
Seguidamente aparecerá la siguiente interfaz gráfica en la que podremos ver el estado de todas las unidades gestionadas por systemd.
Para averiguar el significado de cada uno de los parámetros del servicio tan solo tienen que consultar el apartado Obtener información de la totalidad de los servicios.
Para finalizar pueden visitar el siguiente enlace en el que encontrarán la información necesaria para administrar los servicios de vuestra distribución Linux.
Esta muy bien y muy completa la información, muchas gracias pero me gustaria saber alguna cosa más que no veo documentada por ningun lado (Documentada a nivel de principiante en linux).
Se trata de información concreta sobre los servicios: a que sirven y cuales son las consecuencias de desactivarlos, por supuesto hay muchos servicios donde la cosa es evidente o podemos encontrar explicaciones, pero la mayoría continua siendo una enigma. (A veces da la impresión de ser un tabú, lo tocan superficialmente y nada más).
Un saludo
Peter
Hola Peter
No es que sea un tema Tabu. Imagino que la gente no escribe porque la función de cada uno de los servicios está descrita de forma correcta en las páginas man de la distribución que uses.
Si buscas en Google también deberías encontrar otras explicaciones y aplicaciones de los servicios que quieras información. Si no entiendes las explicaciones entonces tendrás que buscar información adicional sobre los puntos que no entiendas y aprender los conceptos.
Si le pones un poco de voluntad encontrarás y aprenderás que lo quieras o necesites.
Saludos