Cómo enumerar el servicio con Systemd

Cómo enumerar el servicio con Systemd
Este artículo podría ser un comando corto, pero la impresión resultante es muy larga.

El comando volcado

Si alguien le pide que muestre toda la configuración de su sistema, use el comando volcado.

$ systemd-ítems-configuation-items

El archivo cubre todas las unidades que tiene en el sistema. Una vez que un desarrollador tiene este archivo disponible, la persona pasará por lo que tiene e intentará encontrar los problemas que enfrenta. Sobre y hecho. Sin embargo, no estarías leyendo este artículo si ibas a dejar que alguien más hiciera todo. Permítanos ver qué puede hacer con un servicio a la vez y aprender algunos trucos para filtrar sus resultados.

La jerarquía de Systemd

Para ser eficiente, debe darse cuenta de que, dentro de Systemd, tiene jerarquía y puede establecer cada servicio para depender y/o esperar otros servicios. Las diferentes formas en que hace esto es evidente en los archivos de servicio. Las diferentes declaraciones que tiene son 'deseos', 'requeridos', 'antes' y 'después'. Para un análisis efectivo, puede usarlos para ver si su unidad está inactiva debido a las dependencias. Luego puede rastrear hacia donde se encuentra el problema subyacente. Aquí hay un ejemplo de esto.

$ SystemCTL List-Dependencies --Before XPRA.servicio

La impresión muestra las otras unidades que XPRA.El servicio confía en. En este caso, las otras unidades están activas, por lo que debe centrarse en por qué la unidad en sí está rota. Al ejemplo le faltaba un archivo de certificado.

El uso más importante de esto es investigar si a su servicio le faltan dependencias, use el comando de esta manera.

$ SystemCTL List-Dependencies Xringd

El resultado es una lista larga, convenientemente organizada en un árbol y que muestra todos los servicios como verdes o rojos si algo está mal. También puede ver las dependencias en el archivo de servicios. Abra el archivo usando su editor favorito o use SystemCTL, que abrirá el archivo con el editor predeterminado.

Listado de servicios activos

Cuando desee investigar un sistema, deberá saber cómo encajan las unidades. Para hacer esto, tiene una serie de opciones para imprimir los detalles. Puede enumerar qué sistemas están ocupados, fallidos, etc. Más importante aún, puede enumerar cómo se juntan, qué unidad, servicio, etc. la unidad actual depende de. El comando principal para hacerlo es SystemCTL, las opciones son útiles para reducir su problema específico.

Para obtener el uso adecuado de SystemCTL, mira cuidadosamente las opciones para el comando. Hay opciones para elegir exactamente lo que necesita, especialmente con respecto al estado de cualquier Servicio. Aquí estamos buscando servicios que tengan problemas.

$ SystemCTL List-Unit-Files --Type = Service

Esta lista también es larga y debe desplazarse por todos los servicios para encontrar lo que está buscando. Con algunos parámetros más, puede filtrar para uno específico o los que están deshabilitados. El siguiente comando encontrará todas las unidades enmascaradas.

$ SystemCTL List-Unit-Files --Type = Service--State = Masked

Los servicios enmascarados están bloqueados para que otros servicios no puedan iniciarlos, incluso si el otro servicio los necesita. Esto se puede utilizar para asegurar que no tiene servicios conflictivos que se ejecutan. Comúnmente, muchos servicios están enmascarados por su administrador de paquetes cuando elimina el paquete. Puede eliminar el archivo de servicio por completo si lo desea después de eliminar un servicio. También es posible que destruya muchos servicios que desee, así que asegúrese de saber si necesita los servicios enmascarados.

Algunos servicios están enmascarados por procesos y no siempre tiene la intención de que el servicio sea enmascarado. Cuando esto le ha sucedido a su sistema, la primera acción a tomar es desenmascarar usando SystemCTL. Sin embargo, esto no siempre es posible, por lo que debe quitar el enlace en el directorio adecuado. En la mayoría de los sistemas, esto será lib/systemd/sistema. Sin embargo, antes de hacerlo, verifique que el archivo sea realmente un enlace a /dev /null.

$ ls -l lib/systemd/system> | grep null

Cuando esté seguro de que desea eliminar este enlace, elimínelo con RM o Unlink.

$ rm/lib/systemd/system/udisks2.servicio

Ahora que sabe cómo hacerlo, escuche esta advertencia: muchas veces es necesario tener este enlace allí. Tome LVM2 como ejemplo, está enmascarado de la operación para que no interfiera con el nuevo sistema, donde LVM2 viene como muchos servicios pequeños. Ver el resultado de:

$ systemctl status lvm2*

Eliminar el enlace puede causar estragos en su sistema porque LVM2 mismo lo necesita para evitar conflictos. Este es solo un ejemplo, así que ten cuidado antes de seguir adelante.

Conclusión

Cuando desee enumerar los servicios en Systemd, primero debe reflexionar sobre lo que está buscando en su búsqueda. ¿Está buscando un servicio que necesita o vea que tiene demasiados servicios?. De cualquier manera, debe adaptar su consulta a sus necesidades particulares. Systemd se ve confuso al principio, pero cuando mira más de cerca, todo utiliza una forma directa de unificar el inicio para que los servicios puedan comenzar en paralelo donde el sistema lo necesita mientras puede hacer que todos los servicios esperen el servicio específico del que dependen.