Script de ejemplo error.sh
:
#! /bin/bash
zenity --error --text='Something very bad has happened!'
Mi incron-config
:
~/Documents IN_MOVED_TO ~/scripts/error.sh
Si ejecuto el error.sh
terminal, aparece el cuadro de diálogo GUI, pero no en el escenario incron anterior.
¿Cómo puedo hacer que zenity muestre ese diálogo cuando muevo el archivo en la carpeta Documentos?
Para ejecutar un comando GUI en cron, deberá decirle a cron qué pantalla debe usar el programa. Para eso usa: export DISPLAY =: 0
Para una notificación zenity cada 30 minutos, edite
crontab -e
y configure un trabajo como:Detallado cómo: enlace
fuente
Hay otra solución posible si desea que funcione independientemente del nombre de usuario, encontrando el usuario activo de la pantalla X, usando ConsoleKit (el comando
ck-list-sessions
). Suponiendo que la secuencia de comandos a continuación se ejecuta como root, mostrará un mensaje zenity al usuario activo actual en su computadora:El pequeño script awk es solo para analizar ck-list-sessions y generar el nombre de usuario y la visualización del usuario que está activo (también podría requerir que sea una conexión local si desea excluir a los usuarios de ssh -X, si lo desea).
(Lo uso en un script de respaldo que se ejecuta al enchufar una unidad USB).
fuente