From 0a034bfabc5d5c0cca00e1161776d1ca22b713e2 Mon Sep 17 00:00:00 2001 From: skylanix Date: Sat, 16 Aug 2025 12:14:49 +0200 Subject: [PATCH] =?UTF-8?q?Signal=20"Arr=C3=AAt=20imm=C3=A9diat=20demand?= =?UTF-8?q?=C3=A9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- run-web.py | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/run-web.py b/run-web.py index 218fe2b..b3eec7a 100644 --- a/run-web.py +++ b/run-web.py @@ -1,6 +1,9 @@ import locale import logging +import os +import signal +import sys import threading from webapp import webapp from discordbot import bot @@ -15,14 +18,31 @@ def start_discord_bot(): with webapp.app_context(): bot.begin() +def signal_handler(sig, frame): + logging.info("Arrêt immédiat...") + os._exit(0) + if __name__ == '__main__': locale.setlocale(locale.LC_TIME, 'fr_FR.UTF-8') + + signal.signal(signal.SIGINT, signal_handler) + signal.signal(signal.SIGTERM, signal_handler) jobs = [] - jobs.append(threading.Thread(target=start_discord_bot)) - jobs.append(threading.Thread(target=start_server)) + discord_thread = threading.Thread(target=start_discord_bot) + server_thread = threading.Thread(target=start_server) + + discord_thread.daemon = True + server_thread.daemon = True + + jobs.append(discord_thread) + jobs.append(server_thread) - for job in jobs: job.start() - for job in jobs: job.join() + try: + for job in jobs: job.start() + for job in jobs: job.join() + except KeyboardInterrupt: + logging.info("Arrêt immédiat demandé") + os._exit(0)