人気ブログランキング | 話題のタグを見る

ふじかわ家のページ


by mmbrothers

不安定なmotionの仮対処

Raspberry Pi (ラズベリーパイ)で不安定なmotionの仮対処
motion起動後、数時間経過後に/var/log/messagesに下記メッセージが出力され、WEBカメラストリーミングが停止してしまいます。

tail -100 /var/log/messages
...
Dec 5 10:46:36 raspberrypi kernel: [35480.224391] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 11:02:58 raspberrypi kernel: [36462.383840] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 11:16:25 raspberrypi kernel: [37269.068184] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 11:54:31 raspberrypi kernel: [39555.104438] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 12:17:25 raspberrypi kernel: [40929.384675] uvcvideo: Non-zero status (-5) in video completion handler.
Dec 5 12:18:58 raspberrypi motion: [0] Closing video device /dev/video0
...


原因良くわからないから、messagesに"Closing video device /dev/video0"が記録されたら
motionを再起動させるシェルを作成し、cronで動作させてみました。



シェルはこちらこちらを参考に、適当に修正してみました。


pi@raspberrypi ~ $ cat motionmonitor.sh
#!/bin/sh

PATH="/bin:/usr/bin:/usr/local/bin"
export PATH

LOGPATH="/var/log"
FILE="messages"
PATTERN="Closing video device /dev/video0"

cd "$LOGPATH"
tail -n 1 --follow=name $FILE | while read INPUT; do
echo "$INPUT" | grep "$PATTERN" > /dev/null
RET=$?
if [ "$RET" = "0" ]; then
# echo "`date +%Y%m%d-%H%M%S` $INPUT"
sleep 60
# motionプロセスが動いている時だけ、下記を実行
isAliveSV=`ps -ef | grep "sudo motion -n" | grep -v grep | wc -l`
if [ $isAliveSV -ge 1 ]; then
sudo /etc/init.d/motion stop
sudo motion -n &
fi
fi
done



pi@raspberrypi ~ $ crontab -l
40 23 * * * sudo /etc/init.d/motion stop
0 0 * * * /home/pi/motion.sh
10 0 * * * /home/pi/motionmonitor.sh


今日1日に4回ほどエラーで止まっていますが、無事再起動してます。

pi@raspberrypi ~ $ grep "Motion 3.2.12 Started" /var/log/messages
..
Dec 5 09:20:19 raspberrypi motion: [0] Motion 3.2.12 Started
Dec 5 10:28:43 raspberrypi motion: [0] Motion 3.2.12 Started
Dec 5 12:20:29 raspberrypi motion: [0] Motion 3.2.12 Started
Dec 5 14:55:32 raspberrypi motion: [0] Motion 3.2.12 Started
..


とりあえず、原因分かるまでこのまま動作させようかな?
by mmbrothers | 2012-12-05 21:18 | Raspberry Pi/ラズベリーパイ