在我的 Kubuntu 22.04 中,我的 crontab 运行的脚本使用了notify-send
。但是,它不起作用:没有弹出窗口出现。如果我将stderr
脚本的输出(特别是)重定向到文件,则会打印此错误:
Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
如果我notify-send
直接从 cronjob 运行,
0 * * * * env DISPLAY=:0.0 notify-send --expire-time=0 --app-name="Test" 'Test text' 1>/tmp/out1 2>/tmp/out2
out1
和out2
都是空的;但是,这不像以前那样有效。弹出窗口不会出现。
有没有办法让它notify-send
按预期工作?
答案1
我猜想,要notify-send
在 cron 作业中工作,您必须DBUS_SESSION_BUS_ADDRESS
从当前桌面会话复制环境变量并将其设置在 cron 作业中。此外,notify-send
必须以当前登录到桌面会话的同一用户身份运行。
至少对我来说这是有效的。