Qtで書かれたGUIアプリケーションがあり、ssh(またはJenkins)でテストを実行したいと思っていました。ユーザーアカウントは1つだけで、表示モードで実行できます(以前にexport $DISPLAY=:0
。他のユーザーjenkinsでは、コンソールでエラーが発生しました。
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
このユーザーがアプリケーションをグラフィカルモードで実行できるようにするにはどうすればよいですか?私はUbuntu 14.04を使用しています。
X11vnc
はあなたが望むものかもしれません。 vncを使用してデスクトップ全体を共有できます。
または、より詳細に制御するために、X11が個々のウィンドウをディスプレイおよびローカルディスプレイに配置できるようにするには、xauth
を使用してセキュリティを構成します。注xhost
を使用してxauth
と同じことを行うこともできますが、これは非常に安全ではありません。ネットワーク上のすべてのマシンがデスクトップにアクセスし、アプリケーションを制御できるようになります(たとえホストベースの認証を使用します)。
X仮想フレームバッファーを設定して、ヘッドレス継続的インテグレーションサーバーでQTestLibを使用してGUIアプリケーションのユニットテストを実行します。
Xvfb :1 &
PID=$!
DISPLAY=:1 make check
kill $PID