gpt4 book ai didi

UBUNTU:当程序通过 rc.local 以引导顺序运行时,XOpenDisplay(NULL) 失败

转载 作者:行者123 更新时间:2023-12-04 18:30:52 25 4
gpt4 key购买 nike

我编写了一个程序,该程序在登录后在终端中以 ROOT 权限运行,但在重新启动后调用 XOpenDisplay(NULL) 时失败。该程序通过 rc.local 启动,但似乎无法看到 X11。

我需要 ROOT,因为我进行了 LibUSB 调用,如果不是 ROOT,这些调用会失败。我可以看到程序以 ROOT 权限运行,但检查环境变量显示未设置 DISPLAY。我有一个延迟循环运行,并在用户登录后进行检查,用户可以看到环境变量中设置的 DISPLAY 但程序不能。如果程序终止并在终端中运行,它可以完美运行,所以问题是程序在启动时无法与 X11 交互,并且这种状态仍然存在。

我希望程序在没有用户登录的情况下启动并运行。

谁能让我知道我需要做什么?

大卫

最佳答案

您的程序应仅在 X11 启动并运行后启动。但更好的设计是创建一个以 root 权限运行但不使用 X 的服务,并安排一个 X 客户端以某种方式与其通信。如果没有 X 就无法生存,那么就钩入 X11 启动序列,而不是系统启动。

关于UBUNTU:当程序通过 rc.local 以引导顺序运行时,XOpenDisplay(NULL) 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10517333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com