쉘 시작 스크립트에서 git pull 실행

쉘 시작 스크립트에서 git pull 실행

부팅 시 쉘 스크립트를 로드하는 Raspberry Pi가 있습니다.

boot_camera.py이 스크립트는 저장소에서 찾을 수 있는 Python 스크립트를 실행합니다 .

명령을 실행하기 위해 Raspberry Pi에 명령을 보내는 서버가 있습니다 git pull. boot_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

관련 정보