From f0435961cb77e8f4f80b227e92d39d81f45c9d64 Mon Sep 17 00:00:00 2001 From: Aroy-Art Date: Sat, 12 Apr 2025 13:27:20 +0200 Subject: [PATCH] Python Scripts: handel sigint signal gracefully --- PythonScripts/test_disk.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/PythonScripts/test_disk.py b/PythonScripts/test_disk.py index e9bb54c..4a3c3a2 100644 --- a/PythonScripts/test_disk.py +++ b/PythonScripts/test_disk.py @@ -4,6 +4,22 @@ import time import sys import os from datetime import datetime +import signal + +interrupted_once = False +interrupted_time = 0 + + +def handle_sigint(signum, frame): + global interrupted_once, interrupted_time + now = time.time() + if interrupted_once and (now - interrupted_time < 5): + print("\n[!] Second interrupt received. Exiting now.") + sys.exit(1) + else: + interrupted_once = True + interrupted_time = now + print("\n[!] Interrupt received. Press Ctrl+C again within 5 seconds to exit.") def run_cmd(cmd, log_file, check=True, capture_output=True): @@ -106,6 +122,7 @@ def run_fio(device, rw_mode, log_file, bs="4k", runtime=30): def main(): + signal.signal(signal.SIGINT, handle_sigint) parser = argparse.ArgumentParser( description="Test used drive with SMART, badblocks, and fio." )