我有一个用wxPython编写的在beaglebone上远程运行的应用程序。我想使用Xvfb在虚拟帧缓冲区内运行该应用程序,并使用VNC远程访问它。
您可能也知道,我正在从应用程序内部启动VNC,如下所示:
display = Display(":99")
root = display.screen().root
win_ids = [w.id for w in root.query_tree()._data['children'] if w.get_wm_name() and 'myappname' in w.get_wm_name().lower()]
if (win_ids[0]):
print("Found my win id. Starting x11vnc")
system("x11vnc -quiet -sid %s -forever &" % win_ids[0])
else:
print("Can't find my Window ID!")
编辑:我使用的内核版本为3.8.13和xenomai的Debian Jessie。我找不到xvfb-run或Xvfb的版本号,但我可以告诉你我的xorg版本是1.16.4
当我通过以下方式启动该应用程序时:
sudo xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac
我看到以下内容:
但是,当我分别启动Xvfb时:
Xvfb :99 -screen 0 800x600x16 -ac &
然后启动应用程序:
DISPLAY=:99 ./myApp
我看到了(应该是这样):
有什么见解吗?
我们显然没有相同版本的xvfb-run
,但是我的是一个shell脚本,当您运行时
xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac
根本没有任何参数传递给Xvfb服务器,所有参数都传递给应用程序。应用程序必须排在最后,这样-s 1920x1080x16
才能将选项传递给服务器。如果没有此设置,屏幕的默认深度(以8位为单位)可能是导致外观问题的原因。
另外,-s
必须将传递到服务器的args(在之后)制成单个字符串。所以最后,运行:
xvfb-run -s '-screen 0 1920x1080x16' ./myApp
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句