我编写了一个程序,该程序在
登录后在终端中以ROOT权限运行,但在重启后进行XOpenDisplay(NULL)
调用时失败.该程序通过rc.local启动,但似乎无法看到X11.
我需要ROOT,因为我进行了LibUSB调用,如果不是ROOT则会失败.我可以看到该程序正在运行ROOT权限,但检查环境变量显示未设置DISPLAY.我有一个延迟循环运行并在用户登录后进行检查,用户可以在环境变量中看到DISPLAY设置,但程序不能.如果程序终止并在终端中运行,它可以完美地运行,因此问题是程序在启动时无法与X11交互并且此状态仍然存在.
我希望程序在没有用户登录的情况下启动并运行.
任何人都可以让我知道我需要做什么吗?
大卫
解决了感谢tripleee.
Ubuntu现在使用LightDM,因此将下面的行添加到/etc/lightdm/lightdm.conf中
greeter-setup-script=usr/bin/'my-script'
‘my-script’在哪里:
#!/bin/sh
/usr/bin/'my-prog' &
一切正常.