アプリケーション起動時のシステムの問題

アプリケーション起動時のシステムの問題

私のアプリケーションではToradex VF50ボードを使用しています。 VF-50 Colibri ARMプロセッサを搭載しています。私はLinux BSPを移植し、systemdを使用してQtアプリケーションを実行しています。私のQtアプリケーションは、デフォルトの初期化値を取得するためにいくつかのテキストファイルを解析しています。

systemd(multi-user.target)を使用してアプリケーションを起動すると、アプリケーションがファイルから値を読み取れないため、アプリケーションがクラッシュします。

ただし、端末で同じアプリケーションを実行すると、問題なくうまく動作します。

私のアプリケーションで使用するサービスファイル:

[Unit]
Description=Test Application
After=dropbear.service

[Service]
ExecStart=/home/root/startup.sh
#Restart=on-failure
#RestartSec=5

[Install]
WantedBy=multi-user.target

startup.sh次のコマンドがあります。

/bin/sh -c 'source /etc/environment ; /home/root/TestApp -qws'

答え1

systemdスクリプトを実行すると、非常に制限された環境のみが提供されます。特に、あなたHOMEのTestAppはこれらのいずれかに依存するかもしれません。正しいディレクトリを含む明示的に設定してください。私のシステムのバージョンが設定されました。USER/home/rootstartup.shcd

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
LANG=en_US.UTF-8

このセクションで環境変数を提供する/こともできます。たとえば、次のようになります。[Service]

Environment=HOME=/home/root USER=root

ただし、シェル変数は拡張されていないため、これを使用してパスを設定することはできませんPATH=/opt/bin:$PATH

関連情報