Subject: bug#74534: [shepherd] guix-home managed shepherd shares process group with shell

From: Tomas Volf <[email-masked]>
Date: Mon, 25 Nov 2024 21:26:58 +0100

Hello,

thank you for CC-ing me.

Jelle Licht <[email-masked]> writes:

> Addendum:
> running `herd eval root "(setsid)"` solves my particular issue, making
> ^C on my shell no longer kill my user shepherd.

Oh, that is neat.  I did not realize this can be fixed like that without
modifying shepherd's source code.  I turned it into a service that I
added into my home-environment:

--8<---------------cut here---------------start------------->8---
     ;; Bug 74534: Home shepherd can be killed by ^C
     (simple-service 'call-setsid-in-home-shepherd home-shepherd-service-type
                     (list
                      (shepherd-service
                       (documentation "Give shepherd its own process group.")
                       (provision '(setsid))
                       (start #~(lambda _ (setsid) #t))
                       (one-shot? #t))))
--8<---------------cut here---------------end--------------->8---

Have a nice day,
Tomas

-- 
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.