
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を監視するためのスクリプト。