qtdbusアプリケーションをsystemdとして実行する方法は?

qtdbusアプリケーションをsystemdとして実行する方法は?

お会いできて嬉しいです。

Qtが提供するqtdbusを通信用に使用するアプリケーション(car<->コントローラ)を作成しました。望むより。 https://doc.qt.io/qt-5/qtdbus-remotedrivencar-example.html

幸いなことに、そのアプリケーションの通信がうまく行われていることがわかりました。

しかし、システム起動時にアプリケーションを自動的に実行するためにsystemdを使用すると、通信できない問題が発生します。

以下は私が書いたサービスです。

コントローラシステムサービス

[Unit]
Description=Controller App execution 
ConditionPathExists=/var/run/user/root/wayland-0

[Service]
Type=dbus
BusName=org.example.CarExample.service
EnvironmentFile=/etc/sysconfig/weston
ExecStart=/home/root/controller_app
WorkingDirectory=/home/root/

[Install]
WantedBy=multi-user.target

自動車システムサービス

[Unit]
Description=Car app execution
ConditionPathExists=/var/run/user/root/wayland-0

[Service]
Type=dbus
BusName=org.example.CarExample.service
EnvironmentFile=/etc/sysconfig/weston
ExecStart=/home/root/car_app
WorkingDirectory=/home/root/

[Install]
WantedBy=multi-user.target

私のqdbusサービス

[D-BUS Service]
Name=org.example.CarExample.service
Exec=/usr/bin/car_dbus

私の意図は、システムがsystemdを介して起動したときにqtdbusを使用する2つのアプリケーションが正しく機能するようにすることです。

今は間違った道を行っているようです。

また何を探すべきですか?

ベストアンサー1

答えを見つけました。

問題は、システム領域でサービスを実装することです。

qtbusユーザーエリアで通信していることがわかりました。

したがって、ユーザー領域でサービスが作成されたら、そのsystemdサービスが正しく機能していることを確認するためにサービスに接続する必要はありませんdbus

おすすめ記事