From ec15a4e88aaf36e74b0e2ffb4cfda256c7f18558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Diot?= Date: Wed, 7 Dec 2022 11:16:52 +0100 Subject: [PATCH] Handle stop signals from Docker in the scheduler --- src/scheduler/entrypoint.sh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/scheduler/entrypoint.sh b/src/scheduler/entrypoint.sh index 9429c44d4..259f4aaf5 100755 --- a/src/scheduler/entrypoint.sh +++ b/src/scheduler/entrypoint.sh @@ -2,10 +2,22 @@ . /usr/share/bunkerweb/helpers/utils.sh +# trap SIGTERM and SIGINT +function trap_exit() { + log "ENTRYPOINT" "ℹ️ " "Catched stop operation" + if [ -f "/var/tmp/bunkerweb/scheduler.pid" ] ; then + log "ENTRYPOINT" "ℹ️ " "Stopping job scheduler ..." + kill -s TERM "$(cat /var/tmp/bunkerweb/scheduler.pid)" + fi +} +trap "trap_exit" TERM INT QUIT + if [ -f /var/tmp/bunkerweb/scheduler.pid ] ; then rm -f /var/tmp/bunkerweb/scheduler.pid fi +log "ENTRYPOINT" "ℹ️" "Starting the job scheduler v$(cat /usr/share/bunkerweb/VERSION) ..." + # setup and check /data folder /usr/share/bunkerweb/helpers/data.sh "ENTRYPOINT" @@ -29,7 +41,12 @@ fi # execute jobs log "ENTRYPOINT" "ℹ️ " "Executing scheduler ..." -/usr/share/bunkerweb/scheduler/main.py +/usr/share/bunkerweb/scheduler/main.py & +pid="$!" +wait "$pid" +while [ -f /var/tmp/bunkerweb/scheduler.pid ] ; do + wait "$pid" +done log "ENTRYPOINT" "ℹ️ " "Scheduler stopped" exit 0 \ No newline at end of file