[systemd-devel] Question about the cross session dependence

Lennart Poettering lennart at poettering.net
Mon Apr 22 08:42:38 PDT 2013


On Mon, 22.04.13 01:49, Li, Min A (min.a.li at intel.com) wrote:

> Hi systemd experts,
> 
> I have a question about the dependence of user and system session. At
> system session, there is a service which need to be started after
> X(user session).

> At first I added "After=xorg.target" at this service, but It is said
> that the dependence of cross session is not work. Is that true?

Yes, it is.

> If Yes, what's the solution for this kind of issue?

The idea is that system services get socket or bus activated, so that
clients can just connect to them, and if the services are not running
yet they would be started and if they are already being starte that the
client wouldn't have to know.

In the case of X this would mean adding socket activation support to
it. This has been discussed many times, and the X folks are open to
it. It's probably not useful for the desktop case, but for most emebdded
cases it is. Doing socket-activated X isn't even that hard, it's just
that somebody has to sit down and hack it up. By doing socket activation
for X you not only get rid of any explicit dependencies, but you also
get performance wins via the best possible parallelization, and the
thing even becomes more robust, too.

Porting X to socket activation is just a matter of patching it to use
sd_listen_fds() instead of directly binding the listening
socket. There's plenty documentation for it, just google for it!

Lennart

-- 
Lennart Poettering - Red Hat, Inc.


More information about the systemd-devel mailing list