В скрипте 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 Машина , ответы перешли в детали, а не на самом деле охватывает этот «простой» случай.