У меня есть программа, которая порождает несколько процессов, и я убиваю ее с помощью Ctrl + C.
В начале программы я перехватываю сигнал, чтобы выполнить некоторые операции очистки.
def cleanup(*_):
# do cleanup operations here
# ...
exit(1)
# trap ctrl+c and hide the traceback message
signal(SIGINT, cleanup)
# spawn processes (pool of workers) and do work here
# ...
Проблема в том, что cleanup
вызывается несколько раз (по одному разу для каждого запущенного процесса).
Как мне сделать так, чтобы cleanup
вызывался только один раз?