stabilität erhöht
This commit is contained in:
parent
fb8a1ab0ea
commit
1f540fd8a9
27
Dump.sh
27
Dump.sh
|
@ -1,4 +1,5 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
while true; do (
|
||||||
|
|
||||||
NAME=$1
|
NAME=$1
|
||||||
SERVER_IP=192.168.1.66
|
SERVER_IP=192.168.1.66
|
||||||
|
@ -22,6 +23,7 @@ mkdir -p $CAPTURE_DIR
|
||||||
cd $CAPTURE_DIR
|
cd $CAPTURE_DIR
|
||||||
#OUT_FILE_TYPE="mjpeg"
|
#OUT_FILE_TYPE="mjpeg"
|
||||||
OUT_FILE_TYPE="avi"
|
OUT_FILE_TYPE="avi"
|
||||||
|
SCRIPT_PID=$$
|
||||||
|
|
||||||
SHUTDOWN_IN_PROGRESS="false"
|
SHUTDOWN_IN_PROGRESS="false"
|
||||||
quit() {
|
quit() {
|
||||||
|
@ -29,7 +31,7 @@ quit() {
|
||||||
SHUTDOWN_IN_PROGRESS="true"
|
SHUTDOWN_IN_PROGRESS="true"
|
||||||
echo "quitting..."
|
echo "quitting..."
|
||||||
PIDS="$(cat ${PIDFILE_BASE}_A 2>/dev/null) $(cat ${PIDFILE_BASE}_B 2>/dev/null)"
|
PIDS="$(cat ${PIDFILE_BASE}_A 2>/dev/null) $(cat ${PIDFILE_BASE}_B 2>/dev/null)"
|
||||||
rm -f ${PIDFILE_BASE}_A ${PIDFILE_BASE}_B ${PIDFILE_BASE}_KILL_A ${PIDFILE_BASE}_KILL_B ${PIDFILE_BASE}_SLEEP_PID_A ${PIDFILE_BASE}_SLEEP_PID_B
|
rm -f ${PIDFILE_BASE}_A ${PIDFILE_BASE}_B ${PIDFILE_BASE}_KILL_A ${PIDFILE_BASE}_KILL_B ${PIDFILE_BASE}_SLEEP_PID_A ${PIDFILE_BASE}_SLEEP_PID_B ${PIDFILE_BASE}_SLEEP_SYNC_A ${PIDFILE_BASE}_SLEEP_SYNC_B
|
||||||
kill $PIDS 2>/dev/null || (echo "waiting for remaining proccesses..."; sleep 10; echo "killing remaining proccesses..."; kill -9 $PIDS 2>/dev/null)
|
kill $PIDS 2>/dev/null || (echo "waiting for remaining proccesses..."; sleep 10; echo "killing remaining proccesses..."; kill -9 $PIDS 2>/dev/null)
|
||||||
exit $1
|
exit $1
|
||||||
fi
|
fi
|
||||||
|
@ -54,11 +56,16 @@ do_record() {
|
||||||
THIS_KILL_PID="$(cat ${PIDFILE_BASE}_KILL_${GROUP_ID} | grep -oe "\<${THIS_CAPTURE_PID}\>" )"
|
THIS_KILL_PID="$(cat ${PIDFILE_BASE}_KILL_${GROUP_ID} | grep -oe "\<${THIS_CAPTURE_PID}\>" )"
|
||||||
fi
|
fi
|
||||||
if [ -z "$THIS_KILL_PID" ]; then
|
if [ -z "$THIS_KILL_PID" ]; then
|
||||||
echo "capture for camera $i died, killing group $GROUP_ID"
|
# echo "capture for camera $i died, killing group $GROUP_ID"
|
||||||
if [ -f ${PIDFILE_BASE}_SLEEP_PID_${GROUP_ID} ]; then
|
# while [ -f ${PIDFILE_BASE}_SLEEP_SYNC_$GROUP_ID ]; do sleep 1; done
|
||||||
THIS_SLEEP_PID="$(cat ${PIDFILE_BASE}_SLEEP_PID_${GROUP_ID})"
|
# if [ -f ${PIDFILE_BASE}_SLEEP_PID_${GROUP_ID} ]; then
|
||||||
kill -9 $THIS_SLEEP_PID >> /dev/null 2>&1
|
# THIS_SLEEP_PID="$(cat ${PIDFILE_BASE}_SLEEP_PID_${GROUP_ID})"
|
||||||
fi
|
# kill -9 $THIS_SLEEP_PID
|
||||||
|
# fi
|
||||||
|
echo "capture for camera $i died, commiting suicide"
|
||||||
|
kill $SCRIPT_PID >> /dev/null 2>&1
|
||||||
|
sleep 10
|
||||||
|
kill -9 %SCRIPT_PID >> /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
trap outfile_close_trap SIGINT SIGTERM EXIT
|
trap outfile_close_trap SIGINT SIGTERM EXIT
|
||||||
|
@ -76,6 +83,7 @@ while true; do
|
||||||
if [ ! -z "$PIDS_A" ]; then kill -9 $PIDS_A 2>/dev/null; fi
|
if [ ! -z "$PIDS_A" ]; then kill -9 $PIDS_A 2>/dev/null; fi
|
||||||
rm -f ${PIDFILE_BASE}_KILL_A
|
rm -f ${PIDFILE_BASE}_KILL_A
|
||||||
echo "starting group A"
|
echo "starting group A"
|
||||||
|
touch ${PIDFILE_BASE}_SLEEP_SYNC_A
|
||||||
do_record A
|
do_record A
|
||||||
PIDS_B="$(cat ${PIDFILE_BASE}_B 2>/dev/null)"
|
PIDS_B="$(cat ${PIDFILE_BASE}_B 2>/dev/null)"
|
||||||
if [ ! -z "$PIDS_B" ]; then
|
if [ ! -z "$PIDS_B" ]; then
|
||||||
|
@ -90,11 +98,13 @@ while true; do
|
||||||
SLEEP_PID=$!
|
SLEEP_PID=$!
|
||||||
fi
|
fi
|
||||||
echo $SLEEP_PID > ${PIDFILE_BASE}_SLEEP_PID_A
|
echo $SLEEP_PID > ${PIDFILE_BASE}_SLEEP_PID_A
|
||||||
|
rm -f ${PIDFILE_BASE}_SLEEP_SYNC_A
|
||||||
wait $SLEEP_PID
|
wait $SLEEP_PID
|
||||||
|
|
||||||
if [ ! -z "$PIDS_B" ]; then kill -9 $PIDS_B 2>/dev/null; fi
|
if [ ! -z "$PIDS_B" ]; then kill -9 $PIDS_B 2>/dev/null; fi
|
||||||
rm -f ${PIDFILE_BASE}_KILL_B
|
rm -f ${PIDFILE_BASE}_KILL_B
|
||||||
echo "starting group B"
|
echo "starting group B"
|
||||||
|
touch ${PIDFILE_BASE}_SLEEP_SYNC_B
|
||||||
do_record B
|
do_record B
|
||||||
PIDS_A="$(cat ${PIDFILE_BASE}_A 2>/dev/null)"
|
PIDS_A="$(cat ${PIDFILE_BASE}_A 2>/dev/null)"
|
||||||
if [ ! -z "$PIDS_A" ]; then
|
if [ ! -z "$PIDS_A" ]; then
|
||||||
|
@ -109,7 +119,12 @@ while true; do
|
||||||
SLEEP_PID=$!
|
SLEEP_PID=$!
|
||||||
fi
|
fi
|
||||||
echo $SLEEP_PID > ${PIDFILE_BASE}_SLEEP_PID_B
|
echo $SLEEP_PID > ${PIDFILE_BASE}_SLEEP_PID_B
|
||||||
|
rm -f ${PIDFILE_BASE}_SLEEP_SYNC_B
|
||||||
|
echo waiting B
|
||||||
wait $SLEEP_PID
|
wait $SLEEP_PID
|
||||||
|
echo done B
|
||||||
done
|
done
|
||||||
|
|
||||||
quit 1
|
quit 1
|
||||||
|
|
||||||
|
) done
|
||||||
|
|
Loading…
Reference in New Issue