test_sig.py

来自「minimal python variant for small footpri」· Python 代码 · 共 67 行

PY
67
字号
# Test the signal modulefrom test_support import verboseimport signalimport osimport sysif sys.platform[:3] in ('win', 'os2'):    raise ImportError, "Can't test signal on %s" % sys.platform[:3]if verbose:	x = '-x'else:	x = '+x'pid = os.getpid()# Shell script that will send us asynchronous signalsscript = """ (	set %(x)s	sleep 2	kill -5 %(pid)d	sleep 2	kill -2 %(pid)d	sleep 2	kill -3 %(pid)d ) &""" % vars()def handlerA(*args):	if verbose:		print "handlerA", argsHandlerBCalled = "HandlerBCalled"	# Exceptiondef handlerB(*args):	if verbose:		print "handlerB", args	raise HandlerBCalled, argssignal.alarm(20)			# Entire test lasts at most 20 sec.signal.signal(5, handlerA)signal.signal(2, handlerB)signal.signal(3, signal.SIG_IGN)signal.signal(signal.SIGALRM, signal.default_int_handler)os.system(script)print "starting pause() loop..."try:	while 1:		if verbose:			print "call pause()..."		try:			signal.pause()			if verbose:				print "pause() returned"		except HandlerBCalled:			if verbose:				print "HandlerBCalled exception caught"			else:				pass				except KeyboardInterrupt:	if verbose:		print "KeyboardInterrupt (assume the alarm() went off)"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?