This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Wie bekomme ich Cron zum Sprechen?

Tags: None
(comma "," separated)
User avatar
kinoe
Registered Member
Posts
72
Karma
0
OS

Wie bekomme ich Cron zum Sprechen?

Tue Jan 24, 2017 5:28 am
Hallo Forum,
seit gestern erscheinen bei mir keine Benachrichtigungen mehr von Skripts die über CRON laufen.
Dieser Zusatz im Skript hat bisher gut funktioniert:
Code: Select all
export DBUS_SESSION_BUS_ADDRESS=$(ps -u kinoe e | grep -Eo 'dbus-daemon.*ADDRESS=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35)
export DISPLAY=:0
/usr/bin/kdialog --title "Cron-Job" --passivepopup \ "Wöchentliches update läuft!" 10
hab ich von: https://forum.kde.org/viewtopic.php?f=25&t=137424
Das jeweilige Skript läuft problemlos in der Bash, erst wenn es um die Benachrichtigung mit Kdialog geht, erscheint (auch über die Bash) folgendes:
Code: Select all
kdialog(10186)/kdeui (kdelibs): Session bus not found
To circumvent this problem try the following command (with Linux and bash)
export $(dbus-launch)
KCrash: Application 'kdialog' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
KCrash: Connect sock_file=/root/.kde/socket-mizu/kdeinit4__0
Warning: connect() failed: : Datei oder Verzeichnis nicht gefunden
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi directly
drkonqi(10187)/kdeui (kdelibs): Session bus not found
To circumvent this problem try the following command (with Linux and bash)
export $(dbus-launch)
Unable to start Dr. Konqi
Not forwarding the crash to Apport.
Wie könnte das gefixt werden? Oder: Wie bewege ich Cron zuverlässig zum Sprechen?


Reality is frequently inaccurate.
User avatar
kinoe
Registered Member
Posts
72
Karma
0
OS
Lösung hier gefunden: http://unix.stackexchange.com/questions/111188/using-notify-send-with-cron
DBUS_SESSION_BUS_ADDRESS muss angepasst werden. Standardmäßig hat Cron keinen Zugriff auf die Variable.
Das folgende Skript exportiert letztere:
Code: Select all
#!/bin/sh
touch $HOME/.dbus/Xdbus
chmod 600 $HOME/.dbus/Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus
exit 0
Dadurch wird eine Datei erstellt, die die erforderliche dbus-Umgebungsvariable enthält.
Dann, im Skript, das von Cron aufgerufen wird, wird die Variable wieder importiert:
Code: Select all
if [ -r "$HOME/.dbus/Xdbus" ]; then
  . "$HOME/.dbus/Xdbus"
fi
Beispiele hier: http://askubuntu.com/questions/536762/run-rkhunter-regularly-on-a-desktop-system/537721#537721


Reality is frequently inaccurate.


Bookmarks



Who is online

Registered users: Bing [Bot], gfielding, Google [Bot], Sogou [Bot]