부팅 시 쉘 스크립트를 로드하는 Raspberry Pi가 있습니다.
boot_camera.py
이 스크립트는 저장소에서 찾을 수 있는 Python 스크립트를 실행합니다 .
명령을 실행하기 위해 Raspberry Pi에 명령을 보내는 서버가 있습니다 git pull
. boot_camera.py
시작 시 로드할 때 git pull 명령이 실패합니다.
그러나 SSH를 사용하여 연결한 후 "boot_camera.py" 스크립트를 수동으로 로드하면 명령이 git pull
성공적으로 실행됩니다.
처음에는 "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