Обработчик сигналов Python не завершает процесс до выхода из программыPython

Программы на Python
Ответить
Anonymous
 Обработчик сигналов Python не завершает процесс до выхода из программы

Сообщение Anonymous »

Я хочу плавно завершить работу моего скрипта Python с помощью обработчика сигналов. Но при прерывании клавиатуры обработчик не завершает работу до выхода из программы.
Есть какие-нибудь подсказки о том, как заставить обработчик завершить работу?
import sys,subprocess,signal

def signal_handler(sig, frame):
zipProc.terminate()
zipProc.wait()
sys.exit('Stopped')

test_dir = '/mnt/Z/testdir'
out_file = '/mnt/Z/testdir.7z'
cmd = ['7z', 'a', '-t7z', out_file, test_dir]
zipProc = subprocess.Popen(cmd)
zipProc.communicate()
for sig in [signal.SIGTERM, signal.SIGINT, signal.SIGQUIT, signal.SIGHUP]:
signal.signal(sig, signal_handler)


Подробнее здесь: https://stackoverflow.com/questions/792 ... gram-exits
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»