Python сигнал SIGQUIT не работает - PullRequest
0 голосов
/ 01 апреля 2020

Как и предполагалось, сигналы работают идеально, когда я вызываю SIGINT (2) и SIGTERM (15) , но когда я вызываю SIGQUIT (3) , выдавая следующее команда kill -3 script_pid signal_handler не вызывается. Я знаю, что сигнал .SIGKILL не может быть пойман, заблокирован или проигнорирован ( согласно документам ), то же самое для SIGQUIT?

Примечание. Я использую Python3 .6 в среде MacOS.

def signal_handler(signal_num, frame):
    print(f"Got Signal {signal_num}!")
    sys.exit()

if __name__ == '__main__':
    # INTERRUPT (2) Works !
    signal.signal(signal.SIGINT, handler=signal_handler)
    # TERM (15) Works !
    signal.signal(signal.SIGTERM, handler=signal_handler)
    # QUIT (3) Doesn't Works !
    signal.signal(signal.SIGQUIT, handler=signal_handler)

    print('PID :', os.getpid())

    # wait in an endless loop for signals
    while True:
        print('Waiting...')
        time.sleep(3)
...