crontab で他のユーザーに通知を送信する

crontab で他のユーザーに通知を送信する

crontab で実行されているスクリプトがありますが、su として、ある時点で、notify-send によって通知が送信される可能性がありますが、これを特定のユーザーに送信したいです (ログインは $2 にありますが、同時にログインできるのは 1 人だけです)

以下の方法を試しましたが、うまくいきませんでした ;(

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から 3 行のデータが存在するため、追加は機能します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を監視するためのスクリプト

関連情報