プログラミング質問の半分、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