@@ -47,7 +47,9 @@ def main():
47
47
args = arg_parser .parse_args ()
48
48
49
49
# Handle shutting down the program via Ctrl-C
50
- signal .signal (signal .SIGINT , sigint_handler )
50
+ signal .signal (signal .SIGINT , signal_handler )
51
+ # Handle shutting down the program via SIGTERM
52
+ signal .signal (signal .SIGTERM , signal_handler )
51
53
52
54
# Create a config Dictionary from a YAML file located at args.ConfigPath
53
55
config = Config .create_config (args .ConfigPath )
@@ -82,16 +84,20 @@ def main():
82
84
print (f"DuoLogSync: shutdown successfully. Check "
83
85
f"{ Config .get_log_filepath ()} for program logs" )
84
86
85
- def sigint_handler (signal_number , stack_frame ):
87
+ def signal_handler (signal_number , stack_frame ):
86
88
"""
87
- Handler for SIGINT (Ctrl-C) to gracefully shutdown DuoLogSync
89
+ Handler for signals to gracefully shutdown DuoLogSync
88
90
"""
89
91
90
- shutdown_reason = f"received signal { signal_number } (Ctrl-C)"
92
+ if signal_number == signal .SIGINT :
93
+ shutdown_reason = f"received signal { signal_number } (Ctrl-C)"
94
+ else :
95
+ shutdown_reason = f"received signal { signal .strsignal (signal_number )} "
96
+
91
97
Program .initiate_shutdown (shutdown_reason )
92
98
93
99
if stack_frame :
94
- Program .log (f"DuoLogSync: stack frame from Ctrl-C is { stack_frame } " ,
100
+ Program .log (f"DuoLogSync: stack frame from signal is { stack_frame } " ,
95
101
logging .INFO )
96
102
97
103
def create_tasks (server_to_writer ):
0 commit comments