我想每天同时向用户发出一些通知:
任何时间:50
我写信给crontab -e
:
50 * * * * DISPLAY=:0 /usr/bin/notify-send -i /home/nazar/Pictures/icons/download_manager.png "Break" "休息 10 分钟"
当我从控制台运行它时:
notification-send -i /home/nazar/Pictures/icons/download_manager.png "休息" "休息 10 分钟"
我得到了想要的结果:
但是当我在电脑上工作时,我在所需的时间没有这个输出。
有什么建议吗?
更新:
我将 cron 作业更新为:
50 * * * * DISPLAY=:0 /usr/bin/notify-send -i /home/nazar/Pictures/icons/download_manager.png "工作休息" "请休息 10 分钟!" 2>&1 | tee -a cron.out
执行后创建了文件,但它是空的。
我尝试按如下方式更新我的 cron 作业:
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh
50 * * * * /home/nazar/Documents/scripts/pc_break.sh
# just cron test
*/1 * * * * /home/nazar/Documents/scripts/cron_job_test.sh
看起来cron_job_test.sh
:
#!/bin/bash
export DISPLAY=0.0
export XAUTHORITY=/home/matrix/.Xauthority
if [ -r "$HOME/.dbus/Xdbus" ]; then
. "$HOME/.dbus/Xdbus"
fi
/usr/bin/notify-send "hello"
当我从终端运行此脚本时:
./cron_job_test.sh
我正确收到通知。
但 crontab 不会每分钟运行这个脚本。
为什么会出现这种情况?
以及如何解决这个 cron 作业的执行?
答案1
您可能需要编辑该特定用户的 crontab,即
su -l nazar
crontab -e