スクリプトの作成方法を学び始めたばかりで、これがまったく不快に思われる場合はご容赦ください。
何が起こっても65秒後にvlcを強制終了したいのですが、その間にソースから切断された場合は、強制終了して新しい出力ファイル名で再起動したいと考えています。
#!/bin/bash
function record {
DATE=$(date "+%d%m%y%H%M%S%N");
cvlc -vR rtsp://192.168.1.233 \
--sout=file/mov:/var/www/continuous/%1/$DATE.mov 2>& 1 |
while read event;
do
PID=$!
lastevent=${event#*]}
if [ "$lastevent" == "live555 demux warning: no data received in 10s, eof ?" ];
then
kill $PID
record
fi
done
}
record &
sleep 65
kill $PID
問題は$です!正しいpidを取得できないため、それを殺すことはできません。vlc の pid を取得する必要があります。