这个问题快把我逼疯了。我不知道为什么有时会发生这种情况。完全感觉断断续续。
我有一个/etc/rc.local
在启动时触发的 shell 脚本。我正在使用Ubuntu x64 19.10
......无论其价值如何,我通过数字海洋从云滴中运行它。
长话短说...
我的脚本一开始有这样的内容......
echo "Starting virtual display session..."
export DISPLAY=:0
Xvfb :0 -screen 0 640x360x16 &
DISPLAY=:0.0 fluxbox &
sleep 1
x11vnc -display :0.0 -usepw -forever -bg
所有这些在大多数情况下都有效......
然而,fluxbox
有时只是无法加载。我最终会得到一个 X 显示会话,但没有窗口管理器。当我跑步时,ps aux | grep fluxbox
我看到什么也没有。
问题是这种情况只是偶尔发生。我可以重新启动系统,大多数时候它会加载,但有时它完全无法启动进程。
更新:当这似乎发生时,我可以看到发生以下错误:
Error: Couldn't connect to XServer:0.0
如果我设置显示的导出并在启动 Fluxbox 进程时设置显示,为什么会发生这种情况?
有人有什么主意吗?
注意:我只有通过 xvfb 的虚拟帧缓冲区,它始终运行在DISPLAY=:0
谢谢你!
答案1
Xvfb :0 -屏幕 0 640x360x16 & DISPLAY=:0.0 通量盒 &
这很简单。您已经分叉了两个进程以并行运行。Xvfb
当fluxbox
程序尝试连接到 X 服务器时,程序尚未完成初始化。您有一个多任务操作系统,毫无疑问是一个多处理器机器,并且在引导时有一个不确定的负载。除非您采取措施避免/防止此类竞争条件,否则它们是存在的。
进一步阅读
- 乔纳森·德博因·波拉德 (2018)。
/etc/rc.local
已成为过去。。常见答案。