Как поймать потом игнорировать SIGINT в python? - PullRequest
0 голосов
/ 18 июня 2020

В настоящее время я запускаю подпроцесс в Python 3.7 (браузер Jupyter Notebook). Я использую функцию signal_handler () для приостановки и возобновления подпроцесса в соответствии с вводом пользователя в реальном времени.

p = subprocess.Popen('some process', stdout=subprocess.PIPE)

def signal_handler(signal, frame):
    txt = int(input('enter a number: '))
    if txt = 0:
        sys.exit(0)
    if txt = 1:
        pass

while True:
    #some action

В настоящее время, когда я прерываю программу и ввожу 0, программа завершается. Однако, когда я ввожу 1, чтобы возобновить действие в подпроцессе, и пока l oop, подпроцесс снова выдает SIGINT и останавливается, а не возобновляет работу, как обычно. Я пытаюсь создать параметр в signal_handler, чтобы игнорировать SIGINT и продолжить подпроцесс в обычном режиме, если я «случайно» прерву ядро ​​и подниму SIGINT. Как мне это сделать? Спасибо!

...