环境:Debain + i3
1、需要设置DBUS_SESSION_BUS_ADDRESS变量。默认情况下,cron 无权访问该变量。为了解决这个问题,将以下脚本放在某处并在用户登录时调用它,该脚本会导出DBUS_SESSION_BUS_ADDRESS变量
到$HOME/.dbus/Xdbus中
#!/bin/sh touch $HOME/.dbus/Xdbus chmod 600 $HOME/.dbus/Xdbus env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus exit 0
2、这就是我$HOME/.dbus/Xdbus的例子
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-ZJ8pMO9zA8,guid=83076afe21a2c2ca8667dd5c615a9bae export DBUS_SESSION_BUS_ADDRESS
3、然后在 cron 调用的脚本中,引入下面的代码:
if [ -r "$HOME/.dbus/Xdbus" ]; then . "$HOME/.dbus/Xdbus" fi
ref:https://unix.stackexchange.com/questions/111188/using-notify-send-with-cron



