繁体   English   中英

在KDE中使用sudo运行时,python脚本中的pynotify出错

[英]pynotify in python script go wrong when running with sudo in KDE

我只想在KDE环境中显示通知。所以我尝试了pynotifytest.py

from pynotify import *
init("test")
Notification("test", "test").show()

然后我运行sudo python pynotifytest.py ,我得到的错误是:

No protocol specified
/usr/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning)
 ----> 3 Notification("test", "test").show()

Error: Command line `dbus-launch --autolaunch=cb94cb23372d0aff09ce7d8a000024b4 --binary-syntax --close-stderr' exited with non-zero exit status 1: No protocol specified\nAutolaunch error: X11 initialization failed.

然后我试图放弃特权pynotifytest.py

import os
os.setuid(1000)
from pynotify import *
init("test")
Notification("test", "test").show()

我仍然只在KDE中遇到相同的错误。在gnome-shell中,通知显示如预期的那样好。我有一个python程序必须以root特权运行,所以我不能将sudo抛在后面。 1000是我的用户在X中登录的uid。

我的Linux发行版是Arch。 谢谢

要允许sudo在X中启动图形应用程序,您需要添加:

Defaults env_keep += "HOME"

visudo。

“对我有用”-请提供系统的更多详细信息。 它适用于在此处禁用SELinux的fedora 15。 另请注意,您遇到的问题是GTK +部分-本身不是pynotify。

另外-您的用户“ 1000”是登录图形环境的用户吗? 当然,如果您尝试与非登录用户或root用户本身一起播放Windows,这将无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM