gelöst wie $DISPLAY variable in Skript setzten oder systemd-unit

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Taomon
Beiträge: 627
Registriert: 08.03.2011 16:34:38
Lizenz eigener Beiträge: GNU Free Documentation License

gelöst wie $DISPLAY variable in Skript setzten oder systemd-unit

Beitrag von Taomon » 19.06.2019 15:29:20

Mein Backskript wird von einer Systemd-Unit mit User-Rechten ausgeführt, da ich damit nur mein home sicher.
Wenn rsync fertig ist schreibt er auch brav in die angegebene Logdatei und das Backup läuft.
Da ich nicht beim Backup gespannt vor dem Notebook sitze, will ich das ein Liedchen mit aplay oder paplay abspielt.

Das war ein Versuch mit paplay.

Code: Alles auswählen

Taomon pulseaudio[8802]: [pulseaudio] main.c: Unable to contact D-Bus: org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Wieso braucht pulse die Variable? Ich will ja kein Video abspielen bloß Musik.
Wie und wo setzt ich diese Variable oder das Enviroment von meinem user am besten?
Ich will jetzt nicht wild drauf los probieren, das sonst alles läuft.

Mit Gruß Taomon
Zuletzt geändert von Taomon am 28.06.2019 11:31:16, insgesamt 1-mal geändert.
Bitte gelegentliche Schreibfehler übersehen. Ich habe ADHS. Danke.

Benutzeravatar
Taomon
Beiträge: 627
Registriert: 08.03.2011 16:34:38
Lizenz eigener Beiträge: GNU Free Documentation License

Re: wie $DISPLAY variable in Skript setzten oder systemd-unit

Beitrag von Taomon » 28.06.2019 11:30:40

Doch etwas rumprobiert. als 1. udev-regel geändert .

Code: Alles auswählen

ENV{SYSTEMD_USER_WANTS}="backup-home-skript"
. Dann die unit nach

Code: Alles auswählen

/etc/systemd/user/
verschoben, und etwas

Code: Alles auswählen

alex@Taomon:~$ cat /etc/systemd/user/backup-home-skript.service 
[Unit]
Description=backup-home-skript 
After=media-debianhome.mount

[Service]
Type=simple
ExecStart=/usr/local/bin/backup-home-skript
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=15s
abgeändert. Eine Datei

Code: Alles auswählen

alex@Taomon:~$ cat .config/environment.d/backup-home-skript-env.conf 
#DISPLAY-VARIABLE für backup-home-skript setzen
DISPLAY=:0

alex@Taomon:~$ 
angelegt und schon hör ich meinen Sound. Wobei ich es immer noch nicht versteh warum diese Variable gebraucht wird. Was solls.

Gruß Taomon
Bitte gelegentliche Schreibfehler übersehen. Ich habe ADHS. Danke.

Antworten