Hi Ludo,

On 16.02.25 18:23, Ludovic Courtès wrote:
Hi,

Dariqq <dar...@posteo.net> skribis:

The issue is that thermald (and possibly other services) don't depend
on user-processes service. Don't know why I had no problems until now.

This should be fixed: they should all depend on ‘user-processes’.

For the record I will not be verifying every daemon service manually in the guix codebase whether it correctly depends on user-processes. Many do directly however also a lot only do transitively. The problematic cases most likely are where a service sets no requirement field at all

The two services that I know of are thermald and virtlogd.

Also the purpose of the user-processes service (and maybe also the filesystems) service as synchronization targets are documented only in their definition and implicitly with the shepherd graph image. System-shepherd services that dont depend on anything are probably a bad idea and seems like a very common mistake for (new) users implementing their own services. Maybe this should be a a more explicit note in the documentation for shepherd-service-requirement and/or a small paragraph in the shepherd services intro?


Probably the bug you’re seeing here was revealed by
<https://issues.guix.gnu.org/75829>.


Is there a reason for user-processes to block on waiting for every process execpt PID1 to exit or why during the (sleep 1) calls other services (that falsely dont depend on user-processes) are not being stopped in the meantime which would help resolve the deadlock?

This causes every daemon indirectly to depend on user-processes but shepherd may not know about it.

But perhaps shepherd should also just disable all services when shutting
down so that respawning doesn’t happen.

I guess shepherd is just doing its duty as a service manager. Something else send SIGTERM/SIGKILL and shepherd kindly respawns it as instructed. But insisting on restarting a service seems a bit pointless to me during shutdown/reboot where everything will be terminated anyway.


Ludo’.




Reply via email to