동영상을 Google 드라이브에 업로드하기 위해 CCTV를 동작 감지로 라즈베리 파이에 웹캠을 설정하려고 합니다.제레미 브라이스의 각본
모션이 제대로 작동하고 터미널에서 테스트하면 Python 스크립트가 실행됩니다.
그런데 Motion.conf의 on_movie_end 옵션에 스크립트를 추가하면 스크립트가 실행되지 않습니다.
파일에서 사용하는 스크립트는 다음과 같습니다.
On_Movie_End /etc/motion/uploader.py /etc/motion/uploader.cfg %f
또한 on_movie_end에서 Python 스크립트를 실행하는 bash 스크립트를 실행하려고 시도했지만 그 중 하나도 작동하지 않았습니다. 나는 Linux를 처음 접했기 때문에 내가 맞는지 완전히 확신하지 못합니다.
스크립트는 다음과 같습니다
#!/bin/bash
VIDEO=$1
/etc/motion/uploader.py /etc/motion/uploader.cfg VIDEO
Motion.conf에서 /etc/motion/uploaderscript.sh %f
답변1
다음 사항을 확인하십시오.
내가 본 모든 예제
on_movie_end
에서는On_Movie_End
.두 스크립트 모두 실행 권한이 있는지 확인하세요. 추가되지 않은 경우:
sudo chmod +x /etc/motion/uploader.py sudo chmod +x /etc/motion/uploaderscript.sh
Python 스크립트의 stderr을 파일로 리디렉션합니다. 이는 오류를 잡는 데 도움이 될 수 있습니다. 이와 일치하도록 .sh 파일을 편집합니다(참고
$VIDEO
: 이는 bash에서 변수를 참조하는 올바른 방법입니다).#!/bin/bash VIDEO=$1 /etc/motion/uploader.py /etc/motion/uploader.cfg $VIDEO &> /tmp/on_movie_end.log
답변2
모션에서 Python 스크립트를 재생하는 방법을 아직도 알 수 없습니다. 대신 텍스트 파일을 생성하는 bash 스크립트를 실행합니다. 시작 시 실제 Python 스크립트에서 텍스트 파일이 존재하는지 확인하는 while 루프를 실행하고, 존재하면 나머지 스크립트를 실행합니다.
답변3
이 구성은 나에게 적합합니다.
on_movie_end /usr/bin/python /home/myuser/Scripts/MyScript.py
물론 스크립트에는 모션 프로세스가 실행될 수 있는 올바른 권한이 있어야 합니다. 구성에 대한 자세한 내용은 Motion 설명서에서 확인할 수 있습니다.
https://www.lavrsen.dk/foswiki/bin/view/Motion/ConfigFileOptions
답변4
간단한 해결책이 있지만 누군가 그것이 어떻게 작동하는지 설명해야 합니다. 캠페인을 루트로 시작하십시오. /etc/rc.local에 'sudomotion'reboot 줄을 추가하면 대부분의 이벤트는 루트, on_event_end sudo... 명령 또는 스크립트로 시작하면 작동합니다.