notify-send
我希望我的 cron 作业在执行时通过Ubuntu 上的命令在桌面上向我报告。我已经阅读了说明 shell 脚本无法访问显示的常见问题,可以通过在调用之前添加以下内容来解决notify-send
:
export DISPLAY=:0.0
所以我在这方面没问题。
我现在所处的位置是,如果我从终端手动调用它,而不是从crontab
.
情况如下:
- 执行的脚本是一个 PHP 文件。调用 shell 命令的 PHP 命令是:
<?php
`export DISPLAY=:0.0 && command -v notify-send && notify-send "Hello world"`;
(PHP 中的反引号表示在 shell 中执行)
- 在这两种情况下,我都将其运行为
root
- 从终端测试时,我运行:
sudo -u root /usr/bin/php -q /var/www/html/cron.php &> /dev/null
这有效,我收到桌面通知
crontab
要为用户编辑我的root
,我使用:
sudo -u root crontab -e
- 在我的
crontab
文件中,我的行是这样的:
* * * * * /usr/bin/php -q /var/www/html/cron.php &> /dev/null
这个不会产生桌面通知,即使脚本 100% 执行(我在日志文件中有成功的结果)。
这里出了什么问题,为什么我不会收到桌面通知?