Cuando ejecuto el comando sudo systemctl list-unit-files
(creo que el sudo es opcional), obtengo una salida que muestra todos los servicios y su estado.
Aquí hay un fragmento de mi máquina:
UNIT FILE STATE
...
debian-fixup.service static
debug-shell.service disabled
display-manager.service enabled
dns-clean.service enabled
dsmcad.service enabled
emergency.service static
failsafe-x.service static
friendly-recovery.service masked
fuse.service masked
gdm.service masked
getty-static.service static
[email protected] enabled
gpsd.service indirect
[email protected] static
gpu-manager.service enabled
halt-local.service static
halt.service masked
hostname.service masked
...
Me pregunto por qué algunos servicios están en estado "enmascarado". Creo que esto significa, "esto es mejor que 'deshabilitar', porque el servicio no puede iniciarse, ni a mano ni por systemd".
¿Cómo puedo obtener más información sobre el estado de una unidad de servicio?
¿Quién ha puesto las unidades en su estado respectivo?
Intenté, por ejemplo,
sudo systemctl help dsmcad
que solo aparece la documentation = ...
línea del archivo de la unidad./etc/systemd/system/dsmcad.service
Nota: Aquí sé exactamente qué es el servicio dsmcad y qué hace, lo instalé yo mismo. Estoy más interesado en una solución general.
mask
y ununmask
comando que se puede usar consystemctl
. Así que solo hazlosystemctl unmask name_of_service.service
.systemctl unmask name_of_service.service
eliminó por completo mi archivo de definición de servicio/etc/systemd/system/
, por lo que ahora necesito agregarlo nuevamente. Si vuelve a enmascararse, estaré atrapado en un bucle oO/etc/systemd/system
son solo enlaces simbólicos de servicios. Debe agregar el*.service
archivo/lib/systemd/system
desde donde se vinculará/etc/systemd/system
sienable
el servicio.mask
está creando un enlace/dev/null
yunmask
está eliminando este enlace/etc/systemd/system
y obviamente no hay diferencia si alguien coloca un archivo allí.hostname.service
está enmascarado como redundante porquesystemd
establece el nombre de host (desde / etc / hostname) muy temprano durante el inicio.Esta configuración la proporciona el paquete systemian de Debian.
De manera similar, Debian ahora puede ejecutarse sin un script de shell en
halt
el sistema, en su lugar se maneja mediante systemd-shutdown (código fuente aquí ).Si un servicio se ha enmascarado manualmente, la máscara se instalará en su
/etc/systemd/system
lugar.Los servicios también se enmascaran cuando se eliminan en Debian / Ubuntu . No se porque.
fuente
Dado que está solicitando información sobre el estado enmascarado, es importante mencionar que se puede observar en un servicio que después de iniciado, modificó sus definiciones, recargó (systemctl daemon-reload) y el nuevo estado NO está bien . Un ejemplo sencillo para entenderlo es el siguiente escenario:
Por lo tanto, el estado enmascarado puede originarse a partir de definiciones de servicio inadecuadas. Por lo tanto, el usuario puede inducir un estado desenmascarado editando incorrectamente el servicio.
Observación: no estoy seguro de si sucede a propósito o si es un error simple (opción predeterminada), pero puede ser una información interesante para compartir
fuente