¿Los archivos de la unidad systemd deben recargarse cuando se modifican?

138

Digamos que escribo un mine.servicearchivo. Entonces lo uso systemctl enable mine.service.

Si luego decido editar mine.service, ¿debo decir systemdque mine.servicese modificó? Si es así, ¿cómo hago eso?

425nesp
fuente

Respuestas:

169

Después de realizar cambios en el archivo de la unidad, debe ejecutar systemctl daemon-reload, como se describe aquí .

daemon-reload
Recarga la configuración del administrador de systemd. Esto volverá a ejecutar todos los generadores (consulte systemd.generator (7) ), volverá a cargar todos los archivos de la unidad y recreará todo el árbol de dependencias. Mientras se recarga el demonio, todos los sockets que escucha systemd en nombre de la configuración del usuario permanecerán accesibles.

Luego puede reiniciar (o recargar) su servicio como lo desee con

systemctl restart your-service-name

(daemon-reload no volverá a cargar / reiniciar los servicios por sí mismos, solo informa al sistema de la nueva configuración)

GregL
fuente
2
Descubrí que también necesitaba ejecutar un systemctl restartpara reiniciar el servicio en sí ...
hwjp
3
Por si acaso, daemon-reloadno es universal, tengo que correr systemctl --user daemon-reloadpara servicios de usuario.
Olegs Jeremejevs
Como nota, también "elimina la configuración anterior creada por los generadores" antes de volver a ejecutarlos: freedesktop.org/software/systemd/man/systemd.generator.html
rogerdpack
8

Como una adición a la respuesta anterior: en caso de que haya cambiado algo en la [Install]directiva, es posible que deba ejecutarla sudo systemctl reenable YOURUNITFILEpara recrear los enlaces simbólicos en los directorios .target.

HomelessGamer
fuente
¡Esto me sirvió! No entendí por qué systemctl no estaba recargando el archivo de servicio.
antonagestam