[GELÖST] Notify-Message öffnet sich nicht als Cronjob

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

[GELÖST] Notify-Message öffnet sich nicht als Cronjob

Beitrag von BrotherJ » 11.05.2022 10:19:39

Hallo zusammen,

ich habe auf meinem Laptop ein Bash-Script zum Überwachen des Batterie-Status. Damit das Script alle 2 Minuten startet, habe ich unter meinem Benutzer diesen Cronjob eingerichtet:

Code: Alles auswählen

*/2  *  *  *  * /usr/local/bin/batteryCheck.sh
mit folgenden, auszuführenden Befehl:

Code: Alles auswählen

DISPLAY=:0 && notify-send --urgency=critical  --expire-time=5000  -i /usr/share/icons/Adwaita/256x256/legacy/battery-caution-charging.png "Battery has reached $BATTERY%!" "Start the charging process as the battery has reached the optimum state of charge."
In Syslog sehe ich, dass das Script auch startet

Code: Alles auswählen

May 11 10:04:01 nakuru CRON[13273]: (brotherj) CMD (/usr/local/bin/batteryCheck.sh)
Allerdings erscheint die Notify-Message nicht auf meinem Desktop (XFCE). Wenn ich das Script allerdings als Benutzer oder Root startet, funktioniert das bestens.

Ich habe es auch mit

Code: Alles auswählen

DISPLAY=:0.0
ausprobiert, allerdings ohne Erfolg.

Was ist hier falsch, denn das Linux-System sendet ja auch so eigenständig Message-Fenster an meinen Desktop, sobald ein zuüberwachendes Ereignis stattfindet. Dasselbe möchte ich mit dem Script auch erreichen.

Vielen Dank für Euere Antworten

BrotherJ
Zuletzt geändert von BrotherJ am 11.05.2022 11:08:35, insgesamt 1-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: Notify-Message öffnet sich nicht als Cronjob

Beitrag von MSfree » 11.05.2022 10:39:57

Cron zum Starten von Programmen zu mißbrauchen, die auf der graphischen Oberfläche laufen müssen, ist grundsätzlich eine dumme Idee. Ja, mit vielen Verrenkungen kann man es hinbekommen, es funktioniert dann aber genau für einen Benutzer. Das Setzen von DISPLAY reicht jedenfalls nicht aus, weil die Zugangskontrolle zum Display via MIT magic Cookies (so eine Art Schlüsseldatei) eingeschränkt wird. Und mit Wayland dürfte es endgültig keinen Workaround mehr geben.

Da du nur die Batterie prüfen willst: die üblichen Desktops liefern praktisch alle bereits ein kleines Systemtool mit, daß die Batterie überwacht, den Ladestatus anzeigt und ggfls. auch warnt, wenn z.B. nur noch 5% Restladung in der Batterie steckt. Das Rad mittels eigenem Skript neu zu erfinden, ist unnötig.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: Notify-Message öffnet sich nicht als Cronjob

Beitrag von tobo » 11.05.2022 10:51:47

Ich würde mal sowas probieren:

Code: Alles auswählen

DISPLAY=:0 notify-send --urgency=critical  --expire-time=5000  -i /usr/share/icons/Adwaita/256x256/legacy/battery-caution-charging.png "Battery has reached $BATTERY\%!" "Start the charging process as the battery has reached the optimum state of charge."
Keine Und-Verbindung vom DISPLAY zum notify-send und % gequotet (ansonsten newline).

Edit:
Ist hier kein Fehler, aber prinzipiell schadet es auch nicht, wenn man Pfade zu Programmen (/usr/bin/notify-send) angibt.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: Notify-Message öffnet sich nicht als Cronjob

Beitrag von BrotherJ » 11.05.2022 10:58:22

MSfree hat geschrieben: ↑ zum Beitrag ↑
11.05.2022 10:39:57
Da du nur die Batterie prüfen willst: die üblichen Desktops liefern praktisch alle bereits ein kleines Systemtool mit, daß die Batterie überwacht, den Ladestatus anzeigt und ggfls. auch warnt, wenn z.B. nur noch 5% Restladung in der Batterie steckt. Das Rad mittels eigenem Skript neu zu erfinden, ist unnötig.
Das ist mir bekannt und das nicht mein Ziel. Ich versuche die Formulierung einmal anders herum. Auf den üblichen Desktops poppen bei bestimmten Ereignissen Benachrichtigungsfenster auf, um zu informieren, warnen etc. Das macht der Systembenutzer. Und jetzt einfach einmal losgelöst von dem Batteriestatus, es gibt genug andere Szenarien, über die ich ein Meldungsfenster wünsche.
WIe muss ich das schreiben, dass eben der Systembenutzer mich benachrichtigen kann? Eben auch mittels Systemd, Service-Unit und Timer.

BrotherJ
Beiträge: 323
Registriert: 15.11.2018 07:56:18

Re: Notify-Message öffnet sich nicht als Cronjob

Beitrag von BrotherJ » 11.05.2022 11:08:18

tobo hat geschrieben: ↑ zum Beitrag ↑
11.05.2022 10:51:47
Keine Und-Verbindung vom DISPLAY zum notify-send und % gequotet (ansonsten newline).
Hi Tobo,
vielen Dank für Deinen Hinweis. Das scheint der entscheidende Hinweis zu sein, denn jetzt funktioniert das.

Ich finde das wesentlich konstruktiver als Antworten, die keinen konkreten Beitrag zur Lösung beitragen, sondern eher so wirken, als will dich jemand in eine Richtung drücken.

Besten Dank

BrotherJ

Antworten