On Wed, Jul 28, 2021 at 09:07:58AM -0400, Ben Cotton wrote:
Note from the change owner: I'm submitting this as
very-very-late
change for F35. The implementation in systemd is mostly done, so it'll
become available in rawhide pretty soon. To actually make use of the
new functionality, individual packages should be changed to use
_with_restart in their scriptlets and rebuilt. This will happen over
time, and it's fine if each package does that on its own schedule. We
still do not have that many user services, and restarting from
packaging scriptlets will be possible and appropriate only for some of
them. I think it's important to make the functionality available,
without trying to use it everywhere immediately.
https://fedoraproject.org/wiki/Changes/Restart_User_Service_after_Upgrade
We've been restarting httpd on upgrades in %posttrans for a while, so
it's good to see a more general version of this available. A couple of
notes:
1) Users asked to be able to turn this off ("why did running dnf break
my web server" etc), which I think is reasonable, we added a crude
mechanism (touch /etc/sysconfig/thing) to disable it.
2) Blocking the dnf transaction from completing before the service
restarts turned out to be quite painful UX and we now only run
try-restart with --no-block. Depending on the service or service
configuration there it can be a significant delay. Obviously a trade-off
here since it can hide the failure case.
I tried to trace through the systemd macros (the links from the Change
wiki under "Macro details" are broken) and it looks like you do block on
restart/reload, is that worth reconsidering? Maybe we could wrap the
systemd macros to achieve (1) as well for httpd, but I'd say that it
might be a more generally useful feature too to allow users control over
this feature.
Regards, Joe