2014-01-28 6 views
1

У меня есть скрипт python 3 и он запускается при загрузке. И он работает с некоторыми ресурсами, я хочу, чтобы он был свободным при выходе.Python обнаружить запрос на убийство

Как я могу управлять тем, что скрипт собирается выйти, если я убиваю его kill -6 $PID.

Или любые другие идеи о том, как отправить команду exit и обнаружить ее в скрипте.

ответ

9

Модуль signal - это то, что вы ищете.

import singal 

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

signal.signal(signal.SIGABRT, handler) 

В функции обработчика можно прекратить с sys.exit().

Однако чаще всего используется SIGINT (это то, что происходит, когда вы нажимаете CTRL + C в терминале) или SIGTERM для завершения программы. Если у вас нет кода очистки, вам не нужно писать одну строку кода для обработки SIGINT - по умолчанию возникает ошибка исключения KeyboardInterrupt, которая, если ее не поймать (это причина, по которой вы никогда не должны использовать пустые операторы except:), приводит к завершению работы вашей программы.

+1

Я решил использовать SIGINT с KeyboardInterrupt. большое спасибо –

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