从从rc.local启动的进程调用gtk_init时失败

从从rc.local启动的进程调用gtk_init时失败,gtk,x11,Gtk,X11,我有一个从rc.local调用的脚本,它启动了一个java进程。当所有X相关的事情都完成后,这个java进程启动一个C++进程,调用gtkginIT。此调用产生以下错误: (gstinterface:2828): Gtk-WARNING **: cannot open display: 如果我从终端手动运行第一个脚本,一切正常。原因可能是什么 错误消息告诉您原因:它无法打开显示连接 通常发生这种情况是因为没有显示变量暴露在环境中;你必须把它出口 请注意,使用rc.local启动GUI应用程序是

我有一个从rc.local调用的脚本,它启动了一个java进程。当所有X相关的事情都完成后,这个java进程启动一个C++进程,调用gtkginIT。此调用产生以下错误:

(gstinterface:2828): Gtk-WARNING **: cannot open display:

如果我从终端手动运行第一个脚本,一切正常。原因可能是什么

错误消息告诉您原因:它无法打开显示连接

通常发生这种情况是因为没有
显示
变量暴露在环境中;你必须把它出口


请注意,使用rc.local启动GUI应用程序是一个非常糟糕的主意。如果需要与X11一起启动应用程序,则应使用X11会话脚本,或修改用于启动X11的脚本。

谢谢。我已经导出了DISPLAY=:0,但没有成功。这可能意味着生成rc local的用户没有访问X文件描述的权限,或者在调用脚本时它不可用。您可以使用xhost和超时,但我应该强调,您不应该使用rc local来启动X应用程序。