[Watchdog] Fix kill -0 check, use tini and send kill request to tini instead of parent pid, sleep longer

master
André 2017-10-14 23:26:08 +02:00
parent c5dd30b058
commit ac413058c1
3 changed files with 5 additions and 5 deletions

View File

@ -1,5 +1,4 @@
FROM alpine:3.6
LABEL maintainer "André Peters <andre.peters@servercow.de>"
# Installation
@ -23,10 +22,12 @@ RUN apk add --update \
perl-socket6 \
perl-mime-lite \
perl-term-readkey \
tini \
&& curl https://raw.githubusercontent.com/mludvig/smtp-cli/v3.8/smtp-cli -o /smtp-cli \
&& chmod +x smtp-cli
COPY watchdog.sh /watchdog.sh
ENTRYPOINT ["/sbin/tini", "-g", "--"]
# Less verbose
CMD /watchdog.sh 2> /dev/null

Binary file not shown.

View File

@ -2,7 +2,6 @@
trap "exit" INT TERM
trap "kill 0" EXIT
PARENT_PID=$$
# Prepare
BACKGROUND_TASKS=()
@ -351,12 +350,12 @@ BACKGROUND_TASKS+=($!)
(
while true; do
for bg_task in ${BACKGROUND_TASKS[*]}; do
if ! kill -0 ${bg_task} 21>&2; then
if ! kill -0 ${bg_task} 1>&2; then
echo "Worker ${bg_task} died, stopping watchdog and waiting for respawn..."
log_to_redis "Worker ${bg_task} died, stopping watchdog and waiting for respawn..."
kill -TERM ${PARENT_PID}
kill -TERM 1
fi
sleep 1
sleep 10
done
done
) &