Переопределение SIGTERM isr в python 2.7 не работает в windows 7 - PullRequest
0 голосов
/ 28 апреля 2020

В скрипте python ниже я пытаюсь перехватить сигнал SIGTERM (который может быть получен из другого процесса), установив мой isr и переопределив python по умолчанию. в то время как этот скрипт прекрасно работает в linux (не удивительно), в windows он не работает (не удивительно)!

Как я могу получить такое же поведение в windows 7?

Iam runing python 2.7 при windows 7 P C.

import os
import signal
import time


def instal_isr(SIGN, isr):
    signal.signal(SIGN, isr)


def sigterm_isr(SIGN, int_stack_frame):
    print 'received SIGTERM, {sign} {stackframe}'.format(sign=SIGN, stackframe=int_stack_frame)
    #do some stuf and exit
    exit(1)


def main():
    while(True):
        print 'wasting your cpu cycles'
        time.sleep(2)


if __name__=='__main__':
    instal_isr(signal.SIGTERM, sigterm_isr)
    main()

Вывод в Linux:

wasting your cpu cycles
wasting your cpu cycles
wasting your cpu cycles
wasting your cpu cycles
received SIGTERM, 15 <frame object at 0x7f6261852dd0>

Я попытался получить соответствующую информацию из вопроса в ссылке Обработка сигналов python на windows Машина , ответы перешли в детали, а не на самом деле охватывает этот «простой» случай.

...