Qtで書かれたGUIアプリケーションがあり、ssh(またはJenkins)を介してテストを実行したいと思います。表示モードで実行できるユーザーアカウントは1つだけです(以前はofc)export $DISPLAY=:0
。他のユーザーjenkinsのコンソールにエラーが表示されます。
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
このユーザーがグラフィカルモードでアプリケーションを実行できるようにするにはどうすればよいですか? Ubuntu 14.04を使用してください。
答え1
X仮想フレームバッファを設定してGUIアプリケーションに対して単体テストを実行するために、ヘッドレス連続統合サーバーでQTestLibを使用しています。
Xvfb :1 &
PID=$!
DISPLAY=:1 make check
kill $PID
答え2
X11vnc
たぶんそれはあなたが望むものかもしれません。 vncを使用してデスクトップ全体を共有できます。
あるいは、より多くの制御のために、X11がディスプレイとローカルディスプレイに別々のウィンドウを配置できるようにし、セキュリティを設定するためにxauth
使用することもできます。 Notexhost
も同じことを行うために使用できますが、それはxauth
非常に安全ではなく、ネットワーク上のすべてのコンピュータがデスクトップにアクセスしてアプリケーションを制御できます(ホストベースの認証を使用している場合でも)。
答え3
@tveronesiソリューションによっては、Xサーバーへのローカル接続のみを許可できます。
xhost +local: