18 lines
628 B
Python
18 lines
628 B
Python
import os
|
|
import signal
|
|
|
|
|
|
def _handle_signal(signal_number, frame): # pragma: no cover
|
|
'''
|
|
Send the signal to all processes in borgmatic's process group, which includes child process.
|
|
'''
|
|
os.killpg(os.getpgrp(), signal_number)
|
|
|
|
|
|
def configure_signals(): # pragma: no cover
|
|
'''
|
|
Configure borgmatic's signal handlers to pass relevant signals through to any child processes
|
|
like Borg. Note that SIGINT gets passed through even without these changes.
|
|
'''
|
|
for signal_number in (signal.SIGHUP, signal.SIGTERM, signal.SIGUSR1, signal.SIGUSR2):
|
|
signal.signal(signal_number, _handle_signal)
|