systemd user session integration

Auke Kok auke at foo-projects.org
Sat Jun 30 20:08:32 CEST 2012


On 06/30/2012 04:12 AM, Jannis Pohlmann wrote:
> Hi Auke,
>
> On Fri, 29 Jun 2012 22:39:32 -0700
> Auke Kok<auke at foo-projects.org>  wrote:
>
>> What I'd like to see/create:
>>
>> - a comprehensive non-xfce4 session based way of starting most xfce4
>> components through separate systemd unit files without xfce4-session
>> starting them for us.
>
> In this scenario, how can we preserve the concept of user-configurable
> sessions?
>
> Obviously, our implementation of the autostart spec would still work
> because it is independent of systemd. However, disabling/enabling core
> components in the session would probably require users to
> disable/enable units. Wouldn't that have a global (not just per-user)
> effect or does systemd allow users to override the globally installed
> unit files in $HOME?

systemd cascades down in priority through the following directories for
unit files:

~/.config/systemd/user
/etc/systemd/user
/usr/lib/systemd/user

(there's a few things in there as well like /usr/local, but you get the 
idea)

> Also, still assuming that enabling/disabling units would be
> necessary, how complicated would it be to control access to methods like
> DisableUnitFiles() through D-Bus policies?

trivial - either through dbus directly or invoking `systemctl`

>> - socket activation for services that are socket-based (?)
>
> I don't think we have any socket-based services in Xfce.
>
>> - dbus activation for services that are dbus based (xfconfd)
>
> Most of our services should already install a .service file for D-Bus
> activation.

correct, and from what I've seen it works. What needs to be done is very 
little here: just provide a unit file with BusName=... set so that 
systemd knows how to handle the daemon.

>> - sd-notify() usage for each of the daemons to signal when they are
>> "ready-for-service"
>
>> - xfce4-session can stay but should not start things like Thunar
>> --daemon, xfdesktop etc. under a systemd --user session
>
> Yes, I guess this would be an almost trivial change; simply get rid of
> the code that starts the Xfce core components or the components
> saved as part of the last session.
>
> xfce4-session would still be required for the save-yourself shutdown
> sequence plus autostarting of user-configurable apps/commands.

ack - I'm definitely not arguing against that :)

>> - logind integration in systemd.
>
> I've not looked into logind yet really, can you explain your thoughts
> on this in a bit more detail?

tbh, this is a bit of a grey zone for me as well, since we're talking 
graphical login manager style stuff.

it might help us do logout/shutdown better in the long run, and that's 
very interesting - no more sudo helper.

>> Anyone interested in working with me in figuring out the bits needed
>> to improve this part?
>
> Interested yes, but not sure I can or want to commit to anything at the
> moment. Also, I will be on vacation the next two weeks and am generally
> pretty busy. Anyone else?
>
> Cheers,
> Jannis

thanks for the reply!

Auke


More information about the Xfce4-dev mailing list