Beagleboneでサービスを作成するときにディレクトリを指定することはできません。

Beagleboneでサービスを作成するときにディレクトリを指定することはできません。

プログラミング質問の半分、Linuxの質問の半分なので、どこに載せるのかわからないのでご了承ください。

私はBeaglebone Blackを使用してプロジェクトを進行中で、起動時に非常に複雑なPythonスクリプトを自動化する必要があるため、次のチュートリアルに従いました。

https://stackoverflow.com/questions/28854705/executing-a-script-on-startup-using-beaglebone-black)

動作しますが、スクリプトが/正しいディレクトリではなくディレクトリで実行されるため、/root/pyfingerprint/examples/プログラムがexamplesディレクトリの内容を実行しようとすると、その内容が見つかりません。

必要なすべてのコード行にフルパスを追加しようとしましたが、プロジェクトの一部では機能しますが、cv2や他のライブラリでは不十分です。

os.system("cd /root/pyfingerprint/examples/")Pythonスクリプトの先頭に追加してこの問題を解決しようとしましたが、起動時にプログラムが実行されても、現在のディレクトリはまだ/

プログラムは手動で実行すると完全に実行されますが、起動すると失敗します。

正しいディレクトリで自動的に実行するようにサービスの作業ディレクトリを設定する方法はありますか?

ベストアンサー1

Fruitが提案したように、解決策はcd [dir].shスクリプトを追加してプログラムを起動することです。私の場合、スクリプトは次のようになります。

#!/bin/bash
cd /root/pyfingerprint/examples/
python3 main.py

おすすめ記事