2017-09-06 5 views
1

私は単純なQtコンソールアプリケーション(dbusサービス)を作成しており、systemdを使用して起動する必要があります。Qtアプリケーションをsystemdから起動したときにライブラリを読み込めません

しかし、私はを実行するたびに(私はかなり確信しているアプリケーションがlibQt5Gui.so.5をロードするために失敗したことを示すmy_serv、それはアプリケーションの起動に失敗し、私はでログを持つ終わるjournalctl -xeを開始systemctlそれは)、この特定のライブラリとは関係ありません:私はこれを行うとき、一方のアプリケーションから

raspberrypi systemd[1]: Started my_serv.service. 
raspberrypi MyService[2812]: /opt/services/MyService: error while loading shared libraries: libQt5Gui.so.5: cannot open shared object file: No such file or directory 
raspberrypi systemd[1]: my_serv.service: main process exited, code=exited, status=127/n/a 
raspberrypi systemd[1]: Unit my_serv.service entered failed state. 

は(すなわち、それはDBUS上のオブジェクトを登録するには失敗したrootユーザーの下のコンソールから罰金起動し、私はそれがないと思います関連性):

すべてがバイナリで図書館へのリンクを罰金であると思われ

ls -al /usr/local/qt5/lib/libQt5Gui.* 
-rwxrwxrwx /usr/local/qt5/lib/libQt5Gui.la 
-rwxrwxrwx /usr/local/qt5/lib/libQt5Gui.prl 
lrwxrwxrwx /usr/local/qt5/lib/libQt5Gui.so -> libQt5Gui.so.5.9.1 
lrwxrwxrwx /usr/local/qt5/lib/libQt5Gui.so.5 -> libQt5Gui.so.5.9.1 
lrwxrwxrwx /usr/local/qt5/lib/libQt5Gui.so.5.9 -> libQt5Gui.so.5.9.1 
-rwxrwxrwx /usr/local/qt5/lib/libQt5Gui.so.5.9.1 

:0

Qtライブラリには、次のパスによって突き止めています。次のようにLDD出力は次のようになります。

ldd MyService 
libQt5Gui.so.5 => /usr/local/qt5/lib/libQt5Gui.so.5 (0x76a92000) 
libQt5DBus.so.5 => /usr/local/qt5/lib/libQt5DBus.so.5 (0x76a0d000) 
libQt5Core.so.5 => /usr/local/qt5/lib/libQt5Core.so.5 (0x7654e000) 

サービスファイルは、この(/etc/systemd/system/my_serv.service)のように見えるおそらくリンカディレクトリがコンテキストで知られていない

[Service] 
ExecStart=/opt/services/MyService 
User=root 
+1

init.dとiですが、systemdはユーザー/ローカルのライブラリとパスを認識していません。たとえば、起動時のinit.dは、/ bin、/ sbin/libフォルダについて知っていますが、/ usr/bin/usr/local/bin/usr/local/libなどについてはわかりません。 – Xplatforms

+0

Qt libsを/ libフォルダにリンクするか、/ usr/libフォルダを先に試してみてください。サービスを開始する前にLD_LIBRARY_PATHを設定するか、この値を設定してbashスクリプトでバイナリを開始することもできます – Xplatforms

答えて

1

systemctlです。環境変数LD_LIBRARY_PATHをサービススクリプトの開始時に関連するディレクトリに設定してみてください。詳細はman ld.soを参照してください。あるいは、システム上の他のサービススクリプトを見て、そこに環境がどのように正しく設定されているかを知ることができます。

関連する問題