
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でDebian Jessieとxenomaiを使用しています。 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
私はこれを見る(どのようにすべきか):
どんな洞察力がありますか?
答え1
明らかに同じバージョンはありませんが、xvfb-run
私のバージョンはシェルスクリプトであり、実行すると
xvfb-run ./myApp -s :99 -screen 0 1920x1080x16 -ac
Xvfbサーバーにはパラメータはまったく渡されず、すべてのパラメータはアプリケーションに渡されます。アプリケーションは、-s 1920x1080x16
サーバーに渡されるオプションなど、オンラインで最後のオプションでなければなりません。これがなければ、画面の基本深さは8ビット、これが外観問題の原因である可能性があります。
また、サーバーに渡されるパラメーター(以降-s
)は単一の文字列でなければなりません。最後に、次を実行します。
xvfb-run -s '-screen 0 1920x1080x16' ./myApp