services that depend on Xorg (such as ratpoison/xbmc)
should wait with starting until Xorg is ready for X11 connections
xorg-launch-helper is a simple solution. it starts and forks the
Xorg server and listens for a signal from Xorg. At this point, the
utility signals systemd READY through sd_notify(). At this point
systemd will start units that have an explicit ordering configured
to be after the xorg.service
...
Oct 10 12:03:36 openelec systemd[1]: Reached target Multi-User System.
Oct 10 12:03:36 openelec systemd[1]: Starting Xorg Server...
Oct 10 12:03:39 openelec systemd[1]: Started Xorg Server.
Oct 10 12:03:39 openelec systemd[1]: Starting Ratpoison Window Manager...
Oct 10 12:03:39 openelec systemd[1]: Started Ratpoison Window Manager.
Oct 10 12:03:39 openelec systemd[1]: Starting Graphical Interface.
Oct 10 12:03:39 openelec systemd[1]: Reached target Graphical Interface.
Oct 10 12:03:39 openelec systemd[1]: Starting XBMC user autostart script...
Oct 10 12:03:39 openelec systemd[1]: Started XBMC user autostart script.
Oct 10 12:03:39 openelec systemd[1]: Starting XBMC Media Center...
Oct 10 12:03:39 openelec systemd[1]: Started XBMC Media Center.
Oct 10 12:03:39 openelec systemd[1]: Starting XBMC Mediacenter Interface.
Oct 10 12:03:39 openelec systemd[1]: Reached target XBMC Mediacenter Interface.
Oct 10 12:03:39 openelec systemd[1]: Startup finished in 2.556s (kernel) + 5.194s (userspace) = 7.750s.
...
openelec:~ # systemctl status xorg
xorg.service - Xorg Server
Loaded: loaded (/lib/systemd/system/xorg.service)
Active: inactive (dead)
start condition failed at Wed 2013-10-09 16:00:35 UTC; 5min ago
ConditionPathExists=/run/openelec/xorg-settings.conf was not met
Oct 09 16:00:35 openelec systemd[1]: Started Xorg Server.