When the next release of the Shepherd is made (including commit 9ec5c0000e9a45441417a6ee4138cdcbf1b1f2b2) we should have the capability to resolve this ticket. Attached is my proposed patch from the Guix side. I have tested it on my machine by grafting the Shepherd with the appropriate patch and it seems to work as expected. I tested it by changing the substitute-urls in my guix-daemon configuration. The output of `ps aux | grep guix-daemon` after `guix system reconfigure` showed the substitute-urls were unchanged. After `herd restart guix-daemon` the updated substitute-urls appeared in `ps aux | grep guix-daemon`. I did not need to reboot my system. One possible improvement would be to print out the services that need to be restarted to be upgraded.