udevを介して呼び出されたbashスクリプトで私の実行可能ファイルが実行されないのはなぜですか?

udevを介して呼び出されたbashスクリプトで私の実行可能ファイルが実行されないのはなぜですか?

私のコードでコンパイルされた実行可能ファイルがあります。 Raspberry Pi Zero udevWにシリアルデバイスを接続するときにこの実行可能ファイルを実行しようとしています。ただし、何らかの理由で実行可能ファイルは実行されません。見てみると、topプロセスの痕跡はありません。

これは私のudevルールファイルです/etc/udev/rules.d/10-serial-usb.rules

ACTION=="add", SUBSYSTEM=="usb", KERNEL=="1-1.3", ATTR{idProduct}=="7523", ATTR{idVendor}=="1a86", RUN="/bin/bash /home/blackbox/blackbox-cpp/run.sh"

Bashスクリプトは次のとおりです/home/blackbox/blackbox-cpp/run.sh

#!/bin/bash

/home/blackbox/blackbox-cpp/bin/blackbox &

Bashスクリプトは間違いなく実行中です。これは、スクリプトmkdirなどのコマンドを使用してtouch実際に実行されており、すべてが正しく機能しているかどうかをテストしたためです。それでは、なぜ私の実行可能ファイルが違うのですか?

動作しないということは、実行ファイルがtop

ベストアンサー1

だから私の質問に答えると、私の設定ファイルの読み込み中にエラーが発生したことがわかりました。 JSONファイルを使用して構成セットを読み込んでいますが、ルートディレクトリudevでプロジェクトを実行しているため、ファイルが見つかりません。

したがって、この問題を解決するには、構成ファイルのパスに変更ディレクトリを挿入するbashスクリプトを変更する必要がありました。

#!/bin/bash

cd /home/guy/blackbox-cpp/
bin/blackbox

エラーを見つけてくれた@terdonに感謝します。

おすすめ記事