Exemple de script error.sh
:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
Mon incron-config
:
~/Documents IN_MOVED_TO ~/scripts/error.sh
Si je lance error.sh
dans la boîte de dialogue de l'interface graphique du terminal, mais pas dans le scénario incron ci-dessus.
Comment faire zénité pour faire apparaître cette boîte de dialogue lorsque je déplace un fichier dans le dossier Documents?
Pour exécuter une commande GUI sur cron, vous devrez indiquer à cron quel affichage le programme doit utiliser. Pour cela, vous utilisez: export DISPLAY =: 0
Pour une notification de zénité toutes les 30 minutes, modifiez
crontab -e
et définissez un travail comme:Détaillé comment: lier
la source
Il existe une autre solution possible si vous voulez que cela fonctionne quel que soit le nom d'utilisateur, en trouvant l'utilisateur actif de l'affichage X, en utilisant ConsoleKit (la commande
ck-list-sessions
). En supposant que le script ci-dessous est exécuté en tant que root, il affichera un message de zénité à l'utilisateur actif actuel sur votre ordinateur:Le petit script awk est juste pour analyser ck-list-sessions et sortir le nom d'utilisateur et l'affichage de l'utilisateur qui est actif (peut également nécessiter une connexion locale si vous souhaitez exclure les utilisateurs ssh -X, si vous le souhaitez).
(J'utilise cela dans un script de sauvegarde qui s'exécute en branchant une clé USB.)
la source