Systemd timer/service : Unable to init server: Could not connect

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
willy4711

Systemd timer/service : Unable to init server: Could not connect

Beitrag von willy4711 » 26.09.2021 13:22:19

Habe mir mit Debiancockpit einen Timer und einen Sevice gebastelt, der als Root Debianbleachbit startet
und bestimmte Verzeichnisse /Dateien leert /löscht .
Das funktioniert automatisch im Hintergrund auch.
Bloß kommt beim Start immer eine Fehlermeldung, die ich gerne "eliminieren" würde:

Das Journal sagt:

Code: Alles auswählen

journalctl -b |grep bleachbit
Sep 26 11:00:07 XFCE bleachbit[79897]: Unable to init server: Could not connect: Connection refused
Sep 26 11:00:07 XFCE bleachbit[79897]: Unable to init server: Verbindung ist gescheitert: Connection refused
Sep 26 11:00:07 XFCE bleachbit[79897]: gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)' failed
Sep 26 11:00:07 XFCE bleachbit[79897]: apt-get clean 217,1MB
[....]
Sep 26 11:00:08 XFCE bleachbit[79897]: Gewonnener Speicherplatz: 312MB
Sep 26 11:00:08 XFCE bleachbit[79897]: Gelöschte Dateien: 3595
Sep 26 11:00:08 XFCE bleachbit[79897]: Spezialvorgänge: 1


Der Timer (Reinigung /home ist Missverständlich, das es sich um Dateien unter / handelt):
/etc/systemd/system/Bleachbit.timer

Code: Alles auswählen

[Unit]
Description=Reinigung /home
[Timer]
OnCalendar=*-*-* 11:0:00
[Install]
WantedBy=timers.target
Der Service:

/etc/systemd/system/Bleachbit.service

Code: Alles auswählen

[Unit]
Description=Reinigung /home

[Service]
User=root
ExecStart=bleachbit --preset -c

[Install]
WantedBy=multi-user.target

Was ist da wo falsch geschrieben, und verursacht die obige Fehlermeldung ?

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Systemd timer/service : Unable to init server: Could not connect

Beitrag von Tintom » 27.09.2021 10:18:01

Nunja, eine GUI-Anwendung, die in einer nicht-interaktiven Sitzung versucht als root ein Fenster zu öffnen. Ich würde mich eher wundern, wenn das keinen Fehler schmeißen würde.
Das Verhalten wurde upstream bereits gemeldet (hier und hier), bei Debian findet sich ähnliches unter Debian Bugreport880601.

willy4711

Re: Systemd timer/service : Unable to init server: Could not connect

Beitrag von willy4711 » 28.09.2021 09:58:09

Tintom hat geschrieben: ↑ zum Beitrag ↑
27.09.2021 10:18:01
Das Verhalten wurde upstream bereits gemeldet (hier und hier),
Der Fehler ist seit ein paar Monaten beseitigt. Auch in Xfce funktionierte Bleachbit mit GUI nicht mit Root Rechten.
Bleachbit hat zwei ini- Dateien.
/root/.config/bleachbit/bleachbit.ini
und
~/.config/bleachbit/bleachbit.ini

Je nachdem, wie ich Bleachbit aufrufe, wird die entsprechende ini-Datei abgearbeitet.

Als root funktioniert es mit pkexec oder eben mit normalen einloggen auch im Terminal.

Die Option -c ruft nicht die GUI auf, sondern läuft im Hintergrund. ohne Terminal/GUI. (z.B. über ALT+F2 oder Skript)
Ich werde mal den ursprünglichen Befehl in ein Skript packen.

Code: Alles auswählen

pkexec bleachbit --preset -c
Dieser Befehl in der Unit ließ sich nicht ausführen, gab die Fehlermeldung:

Code: Alles auswählen

Bleachbit.service: Failed with result 'exit-code'.
Jetzt mit Skript:

Code: Alles auswählen

#!/bin/sh

pkexec bleachbit --preset -c>/home/willy/bleachbit_root.log

exit
Funktioniert ohne Fehlermeldung (Unit gestartet) :mrgreen:

Code: Alles auswählen

Sep 28 09:34:16 XFCE pkexec[78891]: willy: Executing command [USER=root] [TTY=/dev/pts/0] [CWD=/home/willy] [COMMAND=/usr/bin/bleachbit --preset -c]
Sep 28 09:49:56 XFCE pkexec[88296]: root: Executing command [USER=root] [TTY=unknown] [CWD=/] [COMMAND=/usr/bin/bleachbit --preset -c]
Warum funktioniert das nur mit einem Skript und nicht mit dem direkten Befehl :?: :?:

Benutzeravatar
Tintom
Moderator
Beiträge: 3029
Registriert: 14.04.2006 20:55:15
Wohnort: Göttingen

Re: Systemd timer/service : Unable to init server: Could not connect

Beitrag von Tintom » 28.09.2021 10:31:08

willy4711 hat geschrieben: ↑ zum Beitrag ↑
28.09.2021 09:58:09
Tintom hat geschrieben: ↑ zum Beitrag ↑
27.09.2021 10:18:01
Das Verhalten wurde upstream bereits gemeldet (hier und hier),
Der Fehler ist seit ein paar Monaten beseitigt.
Die Fehler sind stand heute noch offen, bedeutet: Es wurde noch keine Lösung gefunden.
willy4711 hat geschrieben: ↑ zum Beitrag ↑
28.09.2021 09:58:09
Warum funktioniert das nur mit einem Skript und nicht mit dem direkten Befehl :?: :?:
Das Programm erzeugt vermutlich eine Ausgabe, welche nicht angezeigt werden kann (Stichwort nicht-interaktive Sitzung, siehe oben), durch die Pipe lenkst du die Ausgabe in eine Datei um. Die Service-Unit ist somit abgearbeitet und beendet sich.

Antworten