Hello, I found what happened here. Turns out, when a process is forked and before "setsid" or "setpgid" is called, it shares the parent PGID. In that case the parent is Shepherd, with the PGID 0. When doing the following actions: * stop guix-daemon * start guix-daemon * stop guix-daemon * start guix-daemon If the second stop occurs after "fork" has been done, but before "setsid", then "(getpgid)" returns 0. The naive patch attached could fix the situation. WDYT? Mathieu