Para reiniciar el demonio, ejecuta
systemctl daemon-reexec
Esto está documentado en la página de systemctl
manual :
Vuelva a ejecutar el administrador de systemd. Esto serializará el estado del administrador, volverá a ejecutar el proceso y deserializará el estado nuevamente. Este comando es de poca utilidad, excepto para la depuración y las actualizaciones de paquetes. A veces, puede ser útil como un peso pesado daemon-reload
. Mientras el demonio se está volviendo a ejecutar, todos los sockets del sistema que escuchan en nombre de la configuración del usuario permanecerán accesibles.
Lamentablemente needs-restarting
, no puedo determinar que systemd
realmente se haya reiniciado. systemd
execs
reiniciar, lo que no restablece la hora de inicio del proceso; pero needs-restarting
compara el tiempo de modificación del ejecutable con el tiempo de inicio del proceso para determinar si un proceso necesita reiniciarse (entre otras cosas) y, como resultado, siempre considera que systemd
debe reiniciarse ... Para determinar si systemd
realmente necesita reiniciarse, puede verificar la salida de lsof -p1 | grep deleted
: systemd
utiliza una biblioteca, libsystemd-shared
que se envía en el mismo paquete y, por lo tanto, se actualiza junto con el demonio, por lo que si systemd
necesita reiniciarse, lo verá usando una versión eliminada de la biblioteca. Si lsof
no muestra archivos borrados, systemd
no necesita reiniciarse. (Gracias aJeff Schaller por la pista!)
daemon-reexec
se supone que funciona inclusosystemd
como pid 1.