Tengo problemas para descubrir cómo eliminar las unidades systemd que ya no tienen archivos. Todavía parecen quedarse en el sistema de alguna manera.
Las viejas unidades rotas que estoy tratando de eliminar:
core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
UNIT LOAD ACTIVE SUB DESCRIPTION
<E2><97><8F> [email protected] not-found failed failed [email protected]
<E2><97><8F> [email protected] not-found failed failed [email protected]
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
Los archivos no existen, pero una recarga aún tiene estas unidades persistentes:
core@ip-172-16-32-83 ~ $ systemctl list-unit-files [email protected]
core@ip-172-16-32-83 ~ $ sudo systemctl daemon-reload
core@ip-172-16-32-83 ~ $ systemctl list-units --all firehose-router*
UNIT LOAD ACTIVE SUB DESCRIPTION
<E2><97><8F> [email protected] not-found failed failed [email protected]
<E2><97><8F> [email protected] not-found failed failed [email protected]
LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.
2 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.
No hay archivos relacionados con ellos que pueda encontrar:
core@ip-172-16-32-83 ~ $ sudo find /var/run/systemd -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /etc/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $ find /usr/lib/systemd/ -name "*firehose-router*"
core@ip-172-16-32-83 ~ $
Entonces, ¿cómo me deshago de estos?
systemctl disable
, ¿verdad?Respuestas:
El comando que buscas es
systemctl reset-failed
fuente
disable
,daemon-reload
yreset-failed
aunque el servicio de alias hará comonot-found inactive dead
siempre. También busqué en el disco cualquier cosa que coincida con el nombre del servicio sin resultados.systemctl stop <service>
trabajé para mí.reset-failed
poder limpiarlos.Cuando systemd analiza los archivos de definición de unidad, toma nota de cualquier otra unidad relacionada que aparezca en el archivo, ya sea que esas otras unidades existan o no.
Cuando una unidad aparece como "no encontrada", no es necesariamente un error; todo lo que sabemos es que una definición de unidad local afirma tener alguna relación con ella. Es posible que esta relación no sea de nuestra interés. Por ejemplo, podría ser
"Before:"
alguna otra unidad, pero no usamos esa otra unidad.fuente
Parece que systemd mantiene enlaces, pero no sabe qué hacer con ellos cuando elimina el archivo de la unidad.
Puede intentar eliminarlos manualmente
/etc/systemd/system/suspend.target.wants/
, pero, por supuesto,systemctl reset-failed
una respuesta anterior parece una mejor opción.fuente