diff --git a/build_system/docker/entry.sh b/build_system/docker/entry.sh index 7a84e98..167efb3 100644 --- a/build_system/docker/entry.sh +++ b/build_system/docker/entry.sh @@ -15,6 +15,21 @@ var_mode= var_token= var_ignore= init= +active_watchdog_pid= + +cleanup() { + local signal="$1" + echo "[$(date '+%Y-%m-%d %H:%M:%S')] Signal ${signal} was received, exiting gracefully..." >&2 + if [ -n "${active_watchdog_pid}" ] && ps -p ${active_watchdog_pid} > /dev/null 2>&1; then + kill -TERM ${active_watchdog_pid} 2>/dev/null || true + wait ${active_watchdog_pid} 2>/dev/null || true + fi + echo "Cleanup completed. Exiting now." >&2 + exit 0 +} + +trap 'cleanup SIGTERM' SIGTERM +trap 'cleanup SIGINT' SIGINT if [ ! -f /nano-service-installers/$ORCHESTRATION_INSTALLATION_SCRIPT ]; then echo "Error: agent installation package doesn't exist."