Hi, Tomas Volf <[email protected]> writes:
> Well, since you have mentioned the GnuPG as an example, we could just > mirror what it does, and what I have suggested before. > > --8<---------------cut here---------------start------------->8--- > $ mkdir /tmp/xxx && cd /tmp/xxx > $ guix shell -u test -C findutils gnupg coreutils bash procps -- env > HOME=/tmp/xxx GNUPGHOME=/tmp/xxx bash > test@xx ~ [env]$ gpg-agent --daemon > gpg-agent[2]: directory '/tmp/xxx/private-keys-v1.d' created > gpg-agent[3]: gpg-agent (GnuPG) 2.4.7 started > test@xx ~ [env]$ find /run/user > /run/user > /run/user/1000 > /run/user/1000/gnupg > /run/user/1000/gnupg/d.j1yiifhhjrep9xunazyff54c > /run/user/1000/gnupg/d.j1yiifhhjrep9xunazyff54c/S.gpg-agent.ssh > /run/user/1000/gnupg/d.j1yiifhhjrep9xunazyff54c/S.gpg-agent.browser > /run/user/1000/gnupg/d.j1yiifhhjrep9xunazyff54c/S.gpg-agent.extra > /run/user/1000/gnupg/d.j1yiifhhjrep9xunazyff54c/S.gpg-agent > test@xx ~ [env]$ ps aux > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > test 1 0.0 0.0 5136 4068 ? S 13:32 0:00 bash > test 3 0.0 0.0 5516 2400 ? Ss 13:32 0:00 gpg-agent > --daemon > test 5 0.0 0.0 5224 3852 ? R+ 13:32 0:00 ps aux > test@xx ~ [env]$ rm -r /run/user/1000/gnupg > gpg-agent[3]: socket file has been removed - shutting down > gpg-agent[3]: gpg-agent (GnuPG) 2.4.7 stopped > test@xx ~ [env]$ find /run/user > /run/user > /run/user/1000 > test@xx ~ [env]$ ps aux > USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND > test 1 0.0 0.0 5136 4068 ? S 13:32 0:00 bash > test 8 0.0 0.0 5224 3776 ? R+ 13:33 0:00 ps aux > --8<---------------cut here---------------end--------------->8--- > > So my suggestion is that when the socket is deleted, the shepherd > process stops itself. Brilliant! The only downside is that it’ll be a bit of work (using inotify on Linux and some other method elsewhere, presumably polling) but it definitely sounds like a good plan. I can look into it later it nobody beats me at it. Ludo’.
