我有一个简单的应用程序,我用它来确定我的 X 服务器何时准备就绪。应用程序在init进程中使用,所有的X应用程序都依赖它来完成。它继续尝试连接,当它确实获得连接时,它只是退出。
int main(int argc, const char *argv[])
{
Display *dis;
while(1){
dis = XOpenDisplay(NULL);
if(dis != 0)
break;
usleep(1000);
}
if(dis != 0)
XCloseDisplay(dis);
return 0;
}
我的问题是,在我升级我的 Nvidia 驱动程序后,如果 X 应用程序在这个简单的测试之后运行,它们都无法在屏幕上显示任何内容。
另外,如果我将 xeyes 作为第一个应用程序运行,那么它可以工作。然后,如果我按 Ctrl-c(结束正在运行的 xeyes 应用程序)并启动一个新应用程序,屏幕上不会显示任何内容,但屏幕上不会出现任何错误。
这是预期的行为吗?Xorg 是否应该在最后一个 X 应用程序退出后停止工作?