以 root 身份向 KDE 上的其他用户显示通知

以 root 身份向 KDE 上的其他用户显示通知

我需要使用 bash 或 python 脚本在运行 KDE 的 Debian 系统上以 root 身份向不同用户显示通知消息。到目前为止,我尝试过的方法是:

export DISPLAY=:X (X symbolizes the remote host data)
export XAUTHORITY=~$USERNAME/.Xauthority
zenity --warning --title $TITLE --text " $TEXT

这些命令可以执行我想要的操作,但只能通过终端执行。当我尝试在 Python 脚本中使用它们(使用 os.system() 或 subprocess.call())或尝试通过 shell 脚本运行时;它会失败(通常会向我登录的用户显示通知,而不是向目标用户显示通知。有时还会导致错误:

Could not open X display 
No protocol specified 
Gtk-WARNING **: cannot open display: :X. 
XDG_RUNTIME_DIR not set in the environment.

但同时,它很少向正确的用户显示通知。因此我无法理解它的行为方式。)

我还读到 zenity 不适合 KDE,而 kdialog 更受欢迎。

kdialog --title "some title" --passivepopup "some text" 5 & (number for the time-out)

使用上述命令与 gksu 和 su,再次没有成功。我也尝试了 pynotify。我猜问题不在于我创建通知消息的方式,而是更直接地向用户显示连接到 X 服务器或传输用户特定的 X 服务器设置。

我现在需要帮助;任何建议都会受到赞赏。

答案1

虽然我仍然不知道上述方法的具体问题是什么,但我终于找到了一个非常适合我的情况的解决方案。

cat /home/remote-user/.Xauthority | xauth merge -              #merge the Xauth information of user
DISPLAY=:X kdialog --title 'some title' --sorry 'some_message' (X symbolizes the remote host data)

相关内容