Почему SIGALARM убивает программу Python в Linux? - PullRequest
0 голосов
/ 22 сентября 2018
import signal
import time
import multiprocessing as mp


def launch():
    signal.alarm(5)
    while True:
            time.sleep(1)
            print "Alive"

p = mp.Process(target=launch)
p.start()
p.join()

Эта программа печатает Alive четыре раза на стандартный вывод и затем умирает.Хотя я не обрабатываю сигнал SIGALARM явно внутри программы, я просто ожидаю, что сигнал тревоги будет проигнорирован.Тем не менее, в Linux, сценарий умирает после срабатывания тревоги.Я не смог найти никакой документации для Linux, в которой говорится, что это должно быть поведение по умолчанию для сигнала тревоги.Есть идеи, что вызывает такое поведение?

1 Ответ

0 голосов
/ 22 сентября 2018

Из справочных страниц довольно ясно, что это ожидается.В разделе «Стандартные сигналы» действие по умолчанию для SIGALRM - завершить процесс.Это относится к любой Unix-подобной среде, о которой я знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...