You are not logged in.

#1 2018-05-15 15:28:45

kokoko3k
Member
Registered: 2008-11-14
Posts: 2,394

systemd user services not getting DISPLAY variable environment.

As stated here:
https://wiki.archlinux.org/index.php/Sy … XAUTHORITY

Systemd provides a script in /etc/X11/xinit/xinitrc.d/50-systemd-user.sh to import those variables into the systemd user session on X launch. [3] So unless you start X in a nonstandard way, user services should be aware of the DISPLAY and XAUTHORITY.

I'm using sddm + autologin, but this is not happening:

koko@Gozer# ls -1 ~/.config/systemd/user/*.service
/home/koko/.config/systemd/user/buongiorno.service
/home/koko/.config/systemd/user/exec@.service
/home/koko/.config/systemd/user/nvidia_switch_powermizer_on_lockscreen.service
/home/koko/.config/systemd/user/proiettore_auto_on.service
/home/koko/.config/systemd/user/unison.service
/home/koko/.config/systemd/user/windows.service

koko@Gozer# systemctl --user status proiettore_auto_on.service
● proiettore_auto_on.service - Accende il proiettore ricoh quando viene rimesso in corrente
   Loaded: loaded (/home/koko/.config/systemd/user/proiettore_auto_on.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-05-15 17:08:13 CEST; 13min ago
 Main PID: 1541 (proiettore.auto)
   CGroup: /user.slice/user-1012.slice/user@1012.service/proiettore_auto_on.service
           ├─ 1541 /bin/bash /home/koko/scripts/proiettore.auto.on.sh
           └─13197 sleep 1

mag 15 17:08:18 Gozer proiettore.auto.on.sh[1541]: mar 15 mag 2018, 17.08.13, CEST
mag 15 17:08:18 Gozer proiettore.auto.on.sh[1541]: aspetto che il proiettore sia senza corrente.
mag 15 17:08:13 Gozer systemd[1529]: Started Accende il proiettore ricoh quando viene rimesso in corrente.

koko@Gozer# strings /proc/1541/environ 
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
HOME=/home/koko
LANG=it_IT.utf8
LANGUAGE=it_IT.UTF-8
LC_COLLATE=C
LOGNAME=koko
MAIL=/var/spool/mail/koko
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
QT_GRAPHICSSYSTEM=raster
QT_LOGGING_RULES=*=false
SHELL=/bin/bash
USER=koko
XDG_DESKTOP_DIR=/home/koko/Desktop
XDG_RUNTIME_DIR=/run/user/1012
__GLVND_DISALLOW_PATCHING=1
MANAGERPID=1529
INVOCATION_ID=085255baa1e640fbad2a3c5a972c2d2e
JOURNAL_STREAM=9:21055

The script has been started on :"Tue 2018-05-15 17:08:13 CEST; 13min ago"

koko@Gozer# loginctl list-sessions
   SESSION        UID USER             SEAT             TTY             
        c1       1012 koko             seat0                            
        c2          0 root                                              

2 sessions listed.

koko@Gozer# loginctl show-session c1
Id=c1
User=1012
Name=koko
Timestamp=Tue 2018-05-15 17:08:12 CEST
TimestampMonotonic=39388817
VTNr=7
Seat=seat0
Display=:0
Remote=no
Service=sddm-autologin
Desktop=KDE
Scope=session-c1.scope
Leader=1491
Audit=0
Type=x11
Class=user
Active=yes
State=active
IdleHint=no
IdleSinceHint=0
IdleSinceHintMonotonic=0
LockedHint=no

The session has been started before the service (on: "Timestamp=Tue 2018-05-15 17:08:12 CEST")

And, if i restart the service manually after entering the Desktop Environment, it picks up the "correct" environment:

koko@Gozer# systemctl --user status proiettore_auto_on.service
● proiettore_auto_on.service - Accende il proiettore ricoh quando viene rimesso in corrente
   Loaded: loaded (/home/koko/.config/systemd/user/proiettore_auto_on.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-05-15 17:31:01 CEST; 4s ago
 Main PID: 18916 (proiettore.auto)
   CGroup: /user.slice/user-1012.slice/user@1012.service/proiettore_auto_on.service
           ├─18916 /bin/bash /home/koko/scripts/proiettore.auto.on.sh
           └─18946 sleep 1

mag 15 17:31:01 Gozer systemd[16070]: Started Accende il proiettore ricoh quando viene rimesso in corrente.
mag 15 17:31:01 Gozer proiettore.auto.on.sh[18916]: mar 15 mag 2018, 17.31.01, CEST
mag 15 17:31:01 Gozer proiettore.auto.on.sh[18916]: aspetto che il proiettore sia senza corrente.

koko@Gozer# strings /proc/18916/environ 
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
DISPLAY=:0
HOME=/home/koko
LANG=it_IT.utf8
LANGUAGE=it_IT.UTF-8
LC_COLLATE=C
LOGNAME=koko
MAIL=/var/spool/mail/koko
PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
QT_GRAPHICSSYSTEM=raster
QT_LOGGING_RULES=*=false
SHELL=/bin/bash
USER=koko
XAUTHORITY=/home/koko/.Xauthority
XDG_DESKTOP_DIR=/home/koko/Desktop
XDG_RUNTIME_DIR=/run/user/1012
__GLVND_DISALLOW_PATCHING=1
MANAGERPID=16070
INVOCATION_ID=2e38cc1c333d4a98bbc22f078b91755d
JOURNAL_STREAM=9:94533

Any idea what's going on?

Last edited by kokoko3k (2018-05-15 15:32:56)


Help me to improve ssh-rdp !
Retroarch User? Try my koko-aio shader !

Offline

Board footer

Powered by FluxBB