epgrecで録画失敗する
たまに、EPGを取得するときにrecfsusb2nが動いたままになって録画に失敗しているときがある。
どうやらrecfsusb2nは、放送されてない等、信号のないときに動くと終了しなくなるらしい。
あくまで引数で渡すのは”録画時間”なわけで、信号ないと録画されなくて録画時間もゼロで終了しなくなる。ってことかな。
ってことで、do-record.shを弄ってみた。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/sh echo "CHANNEL : $CHANNEL" echo "DURATION: $DURATION" echo "OUTPUT : $OUTPUT" echo "TUNER : $TUNER" echo "TYPE : $TYPE" echo "MODE : $MODE" RECORDER=/usr/local/bin/recfsusb2n if [ ${OUTPUT} = "/tmp/__temp.ts" ]; then $RECORDER --b25 $CHANNEL $DURATION ${OUTPUT} >/dev/null & cmd_pid=$! sleep 65 result=`ps -ef | grep $cmd_pid | grep -v grep` if [ "${result}" ] then kill $cmd_pid logger -t getepg recfsusb2n_err fi else $RECORDER --b25 $CHANNEL $DURATION ${OUTPUT} >/dev/null fi |
出力ファイル*1でgetepg.phpから呼び出されたか判別して、EPG取得だったらrecfsusb2nをバックグラウンドで動かして65秒後も動いていたら、プロセスを殺してシステムログに書き込むようにした。
普通の録画はそのまま。
たぶん、これで大丈夫なはず。
脚注
- EPG取得の時、epgrecのシステム設定の「EPG取得用テンポラリファイルの設定」にある録画データのパスになる [戻る]



205StudioTR