我有以下脚本:
#!/bin/sh
notificationMessage="Your session is going to expire soon"
if [ $# == 2 ]; then
notificationMessage="Your session is going to expire in $2 hour"
fi
# echo "$notificationMessage"
sudo -u userA notify-send "Session Expiration Notification" "$notificationMessage" -u normal -t 10000
当我从终端运行上述脚本时(登录为远程用户),用户A能够在屏幕上看到通知。但是,如果脚本是从服务执行的(运行为远程用户),通知未显示用户A。
我哪里做错了?
注意:remoteUser有sudo
权限
答案1
但是,如果从服务执行脚本(以 RemoteUser 身份运行),则不会向 userA 显示通知。
默认情况下,X.org 将对自身的访问限制为单个活动用户会话。有不同的方法可以解决这个问题:
- 使用
export DISPLAY=:0
和sudo your_currentuser notification_command
xhost +SI:localuser:remoteUser
在您的用户会话下运行以允许remoteUser
在您的会话中运行 X 应用程序。在你的脚本中你仍然需要使用export DISPLAY=:0
更多信息: