linux - 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
解决方案
在这里测试,我的只有在我通过时才有效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。
推荐阅读
- flutter - firebase 存储颤动中的下载链接问题
- django - Django-Compressor 无法在自定义 S3 域的离线模式下工作
- javascript - Document.scroll 不适用于多个 html 页面
- .net - 如何在 Visual Studio 设计器中启用窗体的视觉样式?
- neo4j - 如何在 neo4j 中显示所有节点和两个节点之间的关系?
- jenkins - 詹金斯构建过程永远运行
- plotly - 如何在同一行中制作三个绘图图表?
- wordpress - 如何将店面主题页脚小部件移出页脚行?
- react-native - 在 react native 中,如何设置一个事件处理程序,当用户从元素外部拖动到元素内部时做出反应?
- python - 如何在没有内置方法的python中查找关键字前后的单词