Carlo Zancanaro <ca...@zancanaro.id.au> skribis: > We still need to work out what we want to do on the Guix side once the > Shepherd is released. Do we want to restart services that we can, or > print a message telling users how to do so? Maybe individual services > should be able to specify their preference?
I would reload and restart services currently stopped (what ‘guix system reconfigure’ currently does), and replace all the other services. This is what the patch you sent at <https://issues.guix.info/issue/22039#24> does. AIUI the only remaining issue is whether/how to print hints about services that need to be manually restarted. In <https://issues.guix.info/issue/22039#36> I wrote: > Perhaps we should simply print (1) the list of services that were > restarted, and (2) a message saying that users should explicitly run > “herd restart SERVICE” to upgrade other services. To which you replied: > If there are services that must never be restarted, then maybe we > don't want to indiscriminately print out a message to restart > everything. We need some way to mark services that must not be > restarted. If that's the case, then we might as well just > automatically restart the services that we can rather than > printing a message saying to do so. What do we gain by adding an > extra step to that process? >From the POV of the Shepherd, services carry no semantics. The Shepherd cannot guess that restarting ‘udev’ or ‘file-system-xyz’ is impractical (try it :-)). Leaf services like ‘ssh-daemon’ can generally be restarted, but whether or not now is a good time to do it is something only the user can decide. That’s why the only services which are safe to restart right away are those currently stopped (and those that can be hot-swapped like nginx.) Thus I think it’s reasonable to print a message along the lines of: The following services were upgraded: … Please run “herd restart SERVICE” to stop, upgrade, and restart services that were not automatically upgraded. WDYT? Thanks, Ludo’.