如何从 cron 脚本调用 zenity?

zet*_*tah 9 cron zenity

示例脚本error.sh

#! /bin/bash

zenity --error --text='Something very bad has happened!'  
Run Code Online (Sandbox Code Playgroud)

我的incron-config

~/Documents IN_MOVED_TO ~/scripts/error.sh
Run Code Online (Sandbox Code Playgroud)

如果我error.sh在终端 GUI 对话框中运行会弹出,但不会在上面的 incron 场景中运行。

当我在 Documents 文件夹中移动文件时,如何让 zenity 弹出该对话框?

zet*_*tah 20

在这里找到答案。添加到~/.bashrc

xhost local:$USER > /dev/null
Run Code Online (Sandbox Code Playgroud)

然后在由 cron 调用的脚本中使用 zenity,如下所示:

zenity --error --text='Something very bad has happened!' --display=:0.0
Run Code Online (Sandbox Code Playgroud)

添加--display=:0.0是重要的


dam*_*das 7

要在 cron 上运行 GUI 命令,您必须告诉 cron 程序应该使用什么显示。为此,您使用:export DISPLAY=:0

对于每 30 分钟一次的 zenity 通知,请编辑crontab -e并设置如下作业:

*/30 *  * * *  export DISPLAY=:0 && /somedirectory/your_zenity_script.sh
Run Code Online (Sandbox Code Playgroud)

详细方法:链接