通知发送以显示以不同用户身份运行的脚本的桌面通知

通知发送以显示以不同用户身份运行的脚本的桌面通知

我有以下脚本:

#!/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 将对自身的访问限制为单个活动用户会话。有不同的方法可以解决这个问题:

  1. 使用export DISPLAY=:0sudo your_currentuser notification_command
  2. xhost +SI:localuser:remoteUser在您的用户会话下运行以允许remoteUser在您的会话中运行 X 应用程序。在你的脚本中你仍然需要使用export DISPLAY=:0

更多信息:

相关内容