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

Binary file not shown.

View File

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