Para reiniciar el demonio, ejecuta
systemctl daemon-reexec
Esto está documentado en la página de systemctlmanual :
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 systemdrealmente se haya reiniciado. systemd execsreiniciar, lo que no restablece la hora de inicio del proceso; pero needs-restartingcompara 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 systemddebe reiniciarse ... Para determinar si systemdrealmente necesita reiniciarse, puede verificar la salida de lsof -p1 | grep deleted: systemdutiliza una biblioteca, libsystemd-sharedque se envía en el mismo paquete y, por lo tanto, se actualiza junto con el demonio, por lo que si systemdnecesita reiniciarse, lo verá usando una versión eliminada de la biblioteca. Si lsofno muestra archivos borrados, systemdno necesita reiniciarse. (Gracias aJeff Schaller por la pista!)
daemon-reexecse supone que funciona inclusosystemdcomo pid 1.