[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Invoking user shepherd; Was: Re: Defining *user* services in Guix
From: |
Ludovic Courtès |
Subject: |
Re: Invoking user shepherd; Was: Re: Defining *user* services in Guix |
Date: |
Tue, 13 Jun 2017 18:06:34 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Hello Danny,
Danny Milosavljevic <address@hidden> skribis:
> On Tue, 13 Jun 2017 10:06:16 +0200
> address@hidden (Ludovic Courtès) wrote:
>
>> The ‘delete-file’ was to avoid EADDRINUSE but I wonder if it’s really a
>> good idea.
>
> Not a good idea.
>
> We should just put the shepherd socket somewhere in /run/user/4711 where 4711
> is the user id (the entire name is present in an environment variable called
> XDG_RUNTIME_DIR). That's a new tmpfs created by the login process (elogind)
> on the first session of that user. That way, this EADDRINUSE can never
> happen except when it should (see below). Everything else is a weird
> workaround.
Yes, that makes sense, we should do that.
>> What’s the difference between a “user bus” and a “session bus”? In
>> general, my understanding is that the user dbus-daemon (session bus?) is
>> started on demand.
>
> The user bus is started once per user. The session bus is started once per
> session.
>
> For example let's say you have a terminal server and log in as ludo on seat1
> and also as ludo on seat2, then you have two session buses and one user bus.
>
> Filesystem-based services usually run per-user because almost no one creates
> extra directories for seats. Many programmers don't even think about it and
> so their services are per-user whether they want to or not.
I see.
Thanks for explaining, that makes a lot of sense to me!
Ludo’.