Beispielskript error.sh
:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
Mein incron-config
:
~/Documents IN_MOVED_TO ~/scripts/error.sh
Wenn ich error.sh
in der Terminal-GUI ausgeführt werde, wird ein Dialogfeld angezeigt, das jedoch nicht im obigen Incron-Szenario angezeigt wird.
Wie kann ich Zenity dazu bringen, diesen Dialog zu öffnen, wenn ich eine Datei in den Ordner "Dokumente" verschiebe?
Um einen GUI-Befehl auf cron auszuführen, müssen Sie cron mitteilen, welche Anzeige das Programm verwenden soll. Dafür verwenden Sie: export DISPLAY =: 0
Bearbeiten Sie für eine Zenity-Benachrichtigung alle 30 Minuten
crontab -e
einen Job wie folgt und legen Sie ihn fest:Detaillierte Anleitung: Link
quelle
Es gibt eine andere mögliche Lösung, wenn Sie möchten, dass es unabhängig vom Benutzernamen funktioniert, indem Sie den aktiven Benutzer der X-Anzeige mithilfe von ConsoleKit (dem Befehl
ck-list-sessions
) suchen . Angenommen, das folgende Skript wird als Root ausgeführt, zeigt es dem aktuellen aktiven Benutzer auf Ihrem Computer eine Zenity-Nachricht an:Das kleine awk-Skript dient nur zum Parsen von ck-list-Sitzungen und zum Ausgeben des Benutzernamens und der Anzeige des aktiven Benutzers (möglicherweise muss auch eine lokale Verbindung vorhanden sein, wenn Sie ssh-X-Benutzer ausschließen möchten, wenn Sie möchten).
(Ich verwende dies in einem Sicherungsskript , das beim Anschließen eines USB-Laufwerks ausgeführt wird.)
quelle