rsyslog/tests/improg-simul.sh
2019-04-08 20:33:40 +02:00

71 lines
1.2 KiB
Bash
Executable File

#! /bin/bash
# add 2019-04-04 by Philippe DUVEAU, released under ASL 2.0
mysleep=./msleep
ACK=0
SLEEP=0
DELAY=500
NB=1
MESSAGE="program datas"
SIGNALED=0
ERR=$0.stderr
while getopts "cd:e:s:n:m:g" OPTION; do
case "${OPTION}" in
g)
SIGNALED=1
;;
c)
ACK=1
;;
d)
DELAY=${OPTARG}
;;
e)
ERR=${OPTARG}
;;
s)
SLEEP=${OPTARG}
;;
n)
NB=${OPTARG}
;;
m)
MESSAGE=${OPTARG}
;;
*)
exit 0
esac
done
trap 'echo "SIGTERM Received" >> '$ERR';echo $0" SIGTERM Received" >&2;exit 0' 15
if (( DELAY > 0 )); then $mysleep ${DELAY}; fi
if [ ${ACK} == 1 ]; then
while [ "x$order" != "xSTART" ]; do
read -r order
echo $order' Received' >> $ERR
echo $0' '$order' Received' >&2
done
while [ "x$order" != "xSTOP" ]; do
if (( NB > 0 )); then
echo ${MESSAGE}
echo "Message sent" >&2
(( NB-- ))
fi
unset order
read -r order
echo $order' Received' >> $ERR
echo $0' '$order' Received' >&2
if (( SLEEP > 0 )); then $mysleep ${SLEEP}; fi
done
else
while (( NB > 0 )); do
echo ${MESSAGE}
echo $0" Message sent" >&2
if (( SLEEP > 0 )); then $mysleep ${SLEEP}; fi
(( NB-- ))
done
if [ ${SIGNALED} == 1 ]; then
$mysleep 100000 &
wait
fi
fi
echo "Leaving improg_sender" >&2