信号的概念

信号(signal)-- 进程之间通讯的方式,是一种软件中断。一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号。

几个常用信号:

SIGINT 终止进程 中断进程 (control+c)

SIGQUIT 退出进程

SIGTERM 终止进程 软件终止信号 (默认信号)

SIGKILL 终止进程 杀死进程

SIGALRM 闹钟信号

例如,要在按下control+c终止进程的时候,做些处理,代码如下:

import signal

def fun(sig, stack_frame):
  print 'eixt %d, %s' % (sig,stack_frame)
  exit(1)

signal.signal(signal.SIGINT, fun)

signal.signal(signal.SIGINT, fun)用来注册信号量的处理函数,

第一个参数是信号量,第二个参数可以传一个函数,

这个函数默认带有两个参数,第一个参数sig表示接收的信号量,第二个stack_frame可以理解为产生中断信号量sig的调用堆栈.