起動時にウェスタン上でQt / waylandアプリケーションを実行する

起動時にウェスタン上でQt / waylandアプリケーションを実行する

起動時にQtアプリケーションを起動したいです。アプリケーションはweston / waylandデスクトップの一部の機能を使用しているため、westonが起動するとすぐにwestonの上で起動する必要があります。通常、SSHを使用してターゲットプラットフォームに接続し、次のコマンドでアプリケーションを起動します。

systemctl stop weston
weston --tty=1
./QtApp

westonを終了せずにTTYで起動すると、次のエラーが発生します。

Failed to create display

私が試したことは、起動スクリプトを設定し、それをsystemdに統合することです。

[Unit]
Description = Onyx Service
After = weston.service
Type = forking

[Service]
ExecStart = /bin/bash /opt/onyx-start

[Install]
WantedBy = multi-user.target

しかし、推測できるように、これは機能しません。 TTYオプションで起動されていない既存のwestonインスタンスからアプリケーションを起動しようとしています。

ベストアンサー1

通常、これは特定のttyでWestonを起動するのではなく、正しいWaylandインスタンスとWestonインスタンスにパスを指定する環境変数を設定することです。これらの変数は、XWaylandが必要なアプリケーションWAYLAND_DISPLAYにも適用されます。DISPLAY

/etc/profile.d/weston.shwayland_env.sh通常、(または場合によっては)などのファイルをインポートして、必要な正しい環境を取得できます。これは通常シェルにログインしたときに行われますが、システム操作はシェルを起動しないため、これらの変数は設定されません。

たぶん、次のようにしてみてくださいonyx-start

#!/bin/sh
. /etc/profile.d/weston.sh
exec /path/to/QtApp

あなたが持っているサービス部門はこれを行うべきです。

(それでもうまくいかない場合は、使用しているLinuxディストリビューション、の内容weston.service、の出力、またはsystemctl status weston.serviceの内容、新しいWestonを起動せずにSSH経由でQtAppを起動するかどうかなど、環境の詳細を一覧表示します。環境設定ファイルをインポートした後そのため、これらの変数がこれらの接続に設定されていない場合があります。weston.shwayland_env.sh

おすすめ記事