
ビデオを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スクリプトを実行しようとしましたが、そのうちの1つも機能しませんでした。私は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 行を追加すると、ほとんどのイベントは root、on_event_end sudo... コマンド、またはスクリプトで始まると機能します。