问题描述
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楼
从 ,很明显这是预期的。
在“标准信号”部分下, SIGALRM
的默认操作是终止该过程。
在我所知道的任何类Unix环境中都是这种情况。