首页 > 解决方案 > Zenity 以 root 身份运行时不显示通知

问题描述

原谅我的愚蠢,但我正在尝试制作一个必须以 root 身份运行才能打印通知但由于某种原因它不起作用的脚本?

在没有 Sudo 的情况下运行时它工作得很好。如果我尝试用 sudo 运行它,它会给我这个错误?** (zenity:14645): WARNING **: 16:25:09.209: Error showing notification: The connection is closed

有人能给我一些关于这个问题的见解和可能的解决方案吗?

这是命令。 echo 'message:Finished!' | timeout 0.1 zenity --notification --listen --display=:0.0

标签: linuxbashzenity

解决方案


在这里测试,我的只有在我通过时才有效XDG_RUNTIME_DIR,否则它会挂起并最终显示:

显示通知时出错:为 org.freedesktop.Notifications 调用 StartServiceByName 时出错:已达到超时

它需要以目标用户身份运行,而不是 root 用户(即使xhost +允许也不行),否则会发生同样的情况。

这在这里有效:

sudo -u $USER --preserve-env=DISPLAY,XDG_RUNTIME_DIR \
  zenity --timeout 1 --notification --text test &

侏儒 3.30.2,zenity 3.30.0。


推荐阅读