【发布时间】:2013-06-18 12:15:20
【问题描述】:
我制作了一个 C 程序,它有时会调用它的 python GUI。
当使用 sudo 在我的桌面上同时运行 C 和 python 时,它可以正常工作,因为 sudo 正在以我的用户身份执行 C 程序。
但是,我创建了一个 systemd 单元以在启动时启动 C 代码,因此它由用户 root 执行,然后我无法让它在我的桌面上显示 Python GUI,因为我得到了WARNING **: Could not open X display。
C 代码正在使用 inotify 监视二进制文件,并在打开二进制文件并通过简单的 system 调用打开 Python GUI 时执行一些工作。
C 代码必须以 root 权限执行,但 python GUI 可以作为普通用户启动,并在需要时使用 polkit 来获取它。它只需要在 /var/lib 本地化的 xml 文件中写入一些内容。
知道我该怎么做吗?
【问题讨论】: