当前位置: 代码迷 >> python >> 为什么SIGALARM会杀死Linux上的Python程序?
  详细解决方案

为什么SIGALARM会杀死Linux上的Python程序?

热度:104   发布时间:2023-07-14 09:49:30.0
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的任何文档,该文档指出它应该是警报信号的默认行为。 知道是什么导致了这种现象吗?

从 ,很明显这是预期的。 在“标准信号”部分下, SIGALRM的默认操作是终止该过程。 在我所知道的任何类Unix环境中都是这种情况。