Oui, mais ça reste avec la même version, ce n'est pas tout à
fait la même chose que recharger une nouvelle version.
Je suis pas sur que grand monde le fasse en pratique, le rechargement à chaud.
Ceci dit, c'est facile à tester, tu prends une vm fedora 19, tu fait un yum upgrade, tu recharges systemd et voila.
Le coeur du code est dans
./src/core/manager.c , fonction manager_deserialize et manager_serialize.
je pense qu'on peut considérer que manager_serialize va pas avoir de bug énorme, étant donné que c'est juste des printfs.
Du coté de manager_deserialize , soit c'est un reload, soit c'est un nouveau daemon. Si c'est un nouveau daemon et que la deserialization ne marche pas, systemd continue à tourner ( et donc à se lancer ), bien qu'il est possible que des process soient non gérés ou ce genre de choses ( vu que l'état n'a pas été transmis ). Bien que ça ne soit pas parfait, je pense que "systemd est encore mais le systéme est dans un état dégradé" est plus robuste que "le systéme est planté".
[^] # Re: Systemd et crash
Posté par Misc (site web personnel) . En réponse au journal Chronique des dinosaures rétrogrades. Évalué à 6.
Je suis pas sur que grand monde le fasse en pratique, le rechargement à chaud.
Ceci dit, c'est facile à tester, tu prends une vm fedora 19, tu fait un yum upgrade, tu recharges systemd et voila.
Le coeur du code est dans
./src/core/manager.c , fonction manager_deserialize et manager_serialize.
je pense qu'on peut considérer que manager_serialize va pas avoir de bug énorme, étant donné que c'est juste des printfs.
Du coté de manager_deserialize , soit c'est un reload, soit c'est un nouveau daemon. Si c'est un nouveau daemon et que la deserialization ne marche pas, systemd continue à tourner ( et donc à se lancer ), bien qu'il est possible que des process soient non gérés ou ce genre de choses ( vu que l'état n'a pas été transmis ). Bien que ça ne soit pas parfait, je pense que "systemd est encore mais le systéme est dans un état dégradé" est plus robuste que "le systéme est planté".
Le code
http://cgit.freedesktop.org/systemd/systemd/tree/src/core/manager.c#n959
http://cgit.freedesktop.org/systemd/systemd/tree/src/core/main.c#n1663
On note qu'une erreur est affiché, mais que ça continue.
Si c'est un reload, ça se passe ici :
http://cgit.freedesktop.org/systemd/systemd/tree/src/core/manager.c#n2335
Et si c'est un reload, et que ça plante, le manager continue.
Donc je veux bien croire que des bugs arrivent, mais les précautions pour ne pas se vautrer trop lamentablement sont la.