透過 crontab 通知發送給其他用戶

透過 crontab 通知發送給其他用戶

我有 crontab 運行的腳本,但作為 su,在某些時候它可能會通過 notification-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 的腳本

相關內容