2022-03-07
仕事
むー
しんどかった
とにかく Lock に失敗するし、Mirakurun はすぐ諦めるので全然認識されない
以下のスクリプトを書いて解決させた
code:rec.sh
trap 'echo "exit by signal" >&2; pkill -KILL -P $$' 0 1 2 3 15
CHANNEL_LIST=$1
CHANNEL=$2
DVBV5ZAP_LOG=$(mktemp)
for i in {1..5}; do
trap 'echo "exit by signal(in for)" >&2; pkill -KILL -P $$; rm "$DVBV5ZAP_LOG" 2>/dev/null; exit 1' 0 1 2 3 15
echo "$i/5" >&2
dvbv5-zap -C JP -c "$CHANNEL_LIST" -P -r "$CHANNEL" 2> >(tee "$DVBV5ZAP_LOG" >&2) &
sleep 5
if grep "Lock" "$DVBV5ZAP_LOG" >/dev/null; then
break
fi
echo Failed to lock: $$ >&2
pkill -KILL -P $$
sleep 1
echo >&2
done
wait
rm "$DVBV5ZAP_LOG"
Lock