2015-10-20 4 views
1

Я пишу программу python, которая читает из очереди через бесконечный цикл while. Как я могу обрабатывать сигнал, отправленный прерыванием OS/Keyboard (CTRL + C), чтобы выйти из цикла while и закрыть активные соединения и файлы и выйти из программы изящно, а не убить процесс.Как обрабатывать сигнал ОС в программе python?

while True: 
    read_from_file_and_do_something() 
    ## Handle a signal of shutdown here. 
    ## Send email before exiting. 

Эта программа будет работать как демон. Таким образом, требуется отправить сигнал.

ответ

1

Я думаю, что модуль «сигнал» является то, что вы ищете,

def handler(signum, frame): 
    print 'Signal handler called with signal', signum 

signal.signal(signal.SIGABRT, handler) 
+0

Где именно я должен использовать? Внутри петли? –

+0

в ## обрабатывать сигнал 'signal.signal (signal.SIGABRT, обработчик)' и выполнять aftertask в функции обработчика с кодом выхода – nagato

Смежные вопросы