Python
使用 xvfb-run 時出現奇怪的渲染問題
我有一個在 beaglebone 上遠端執行的應用程序,用 wxPython 編寫。我想使用 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
)必須被製成一個單一的字元串。所以最後,執行:xvfb-run -s '-screen 0 1920x1080x16' ./myApp