From 919d1e5d4070ae467cb8dd31718b12222f1edf70 Mon Sep 17 00:00:00 2001 From: jessicamack Date: Thu, 13 Apr 2023 15:21:59 -0400 Subject: [PATCH] catch SIGTERM or SIGINT and send offline message Signed-off-by: jessicamack --- awx/main/management/commands/run_heartbeet.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/awx/main/management/commands/run_heartbeet.py b/awx/main/management/commands/run_heartbeet.py index ce9e531074..7d888146bc 100644 --- a/awx/main/management/commands/run_heartbeet.py +++ b/awx/main/management/commands/run_heartbeet.py @@ -2,6 +2,7 @@ import json import logging import os import time +import signal from django.core.management.base import BaseCommand from django.conf import settings @@ -56,6 +57,8 @@ class Command(BaseCommand): logger.debug('Sending heartbeat') conn.notify('web_heartbeet', self.construct_payload()) time.sleep(settings.BROADCAST_WEBSOCKET_BEACON_FROM_WEB_RATE_SECONDS) + signal.signal(signal.SIGTERM, conn.notify('web_heartbeet', self.construct_payload(action='offline'))) + signal.signal(signal.SIGINT, conn.notify('web_heartbeet', self.construct_payload(action='offline'))) # TODO: Send a message with action=offline if we notice a SIGTERM or SIGINT # (wsrelay can use this to remove the node quicker)