シェル起動スクリプトでgit pullを実行する

シェル起動スクリプトでgit pullを実行する

起動時にシェルスクリプトをロードするRaspberry Piがあります。

boot_camera.pyこのスクリプトは、リポジトリにあるPythonスクリプトを実行します。

コマンドを実行するためにRaspberry Piにコマンドを送信するサーバーがありますgit pullboot_camera.py起動時にロードすると、git pullコマンドは失敗します。

ただし、SSHを使用して接続した後に「boot_camera.py」スクリプトを手動でロードすると、コマンドはgit pull正常に実行されます。

最初は、「sudo」権限を使用してコマンドを実行する必要があるのが問題だと思い、このソリューションを使用して問題を解決しました。

>>> Sudoを使用しないソリューション<<<

ただし、起動時にスクリプトが起動すると、pullコマンドはまだ失敗します。

更新:起動スクリプトを設定するスクリプトは次のとおりです。

sudo cp bootCameraModule.sh /etc/init.d/
sudo update-rc.d bootCameraModule.sh defaults

スクリプト自体は次のとおりです。

case "$1" in
start)
    echo "Starting camera"
    . /home/pi/.virtualenvs/env/bin/activate
    # run application
    cd /home/pi/rpi-repo/rpi/
    python boot_camera.py &
 ;;
stop)
    echo "Stopping camera"
    # kill application
    sudo killall camera
;;
*)
    echo "Usage: /etc/init.d/bootCameraModule {start|stop}"
    exit 1
;;
esac

exit 0

ベストアンサー1

スクリプト自体を見なくても調査することをお勧めしたい強力な可能性は、スクリプトが実行された時点でネットワークがまだ完全に水平になっていないことです。手動が成功する理由は、ネットワークが完全に起動した後に実行したためです。

私のpiカメラアプリがキャプチャした写真やビデオをクラウドに挿入するために使用するgitリポジトリがあります。私のスクリプトは、成功するまで繰り返し続けるか、git clone少なくとも失敗したことを伝えます。

until git clone https://github.com/andreafabrizi/Dropbox-Uploader.git
do
    echo
    echo "Download of Dropbox-Uploader repo failed. Retrying"
    echo "CTRL +C to exit if failing endlessly"
    echo
done

おすすめ記事