通过 crontab 通知发送至其他用户

通过 crontab 通知发送至其他用户

我有一个由 crontab 运行的脚本,但是作为 su,在某些时候它可能会通过notify-send发送通知,但我想将其发送给特定的用户(登录在$2,但只有一个人会同时登录)

我尝试了下面的方法,但是没有效果 ;(

export DISPLAY=:0.0

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)";

username=$2
pid=$(pgrep -u $username nautilus)
dbus=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$pid/environ | sed 's/DBUS_SESSION_BUS_ADDRESS=//' )
export DBUS_SESSION_BUS_ADDRESS=$dbus

提前感谢您的帮助!

答案1

我发现了这个并且效果很好:

DISPLAY=:0 sudo -u $2 notify-send "$path not found!

答案2

添加head -n 1有效,因为现在有三行数据pgrep -u $LOGNAME gnome-session

eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session | head -n 1)/environ)";

我正在使用它我的监控 ZFS 和 mdamd 脚本

相关内容