signal模块
信号编号 | 名称 | 默认动作 | 说明 |
---|---|---|---|
1 | SIGHUP | 终止 | 终止控制终端或进程 |
2 | SIGINT | 终止 | 由键盘引起的终端(Ctrl-c) |
3 | SIGQUIT | dump | 控制终端发送给进程的信号, 键盘产生的退出(Ctrl-\) |
4 | GIGILL | dusmp | 非法指令引起 |
5 | SIGTRAP | dump | debug中断 |
6 | SIGABRT/SIGIOT | dump | 异常中止 |
7 | SIGBUS/SIGEMT | dump | 总线异常/EMT指令 |
8 | SIGFPE | dump | 浮点运算溢出 |
9 | SIGKILL | 终止 | 强制杀死进程(大招, 进程不可捕获) |
10 | SIGUSR1 | 终止 | 用户信号, 进程可自定义用途 |
11 | SIGSEGV | dump | 非法内存地址引起 |
12 | SIGUSR2 | 终止 | 用户信号, 进程可自定义用途 |
13 | SIGPIPE | 终止 | 向某个没有读取的管道中写入数据 |
14 | SIGALRM | 终止 | 时钟中断(闹钟) |
15 | SIGTERM | 终止 | 进程终止(进程可捕获) |
16 | SIGSTKFLT | 终止 | 协处理器栈错误 |
17 | SIGCHLD | 忽略 | 子进程退出或中断 |
18 | SIGCONT | 继续 | 如进程停止状态则开始运行 |
19 | SIGSTOP | 停止 | 停止进程运行 |
20 | SIGSTP | 停止 | 键盘产生的停止 |
21 | SIGTTIN | 停止 | 后台进程请求输入 |
22 | SIGTTOU | 停止 | 后台进程请求输出 |
23 | SIGURG | 忽略 | socket发送紧急情况 |
24 | SIGXCPU | dump | CPU时间限制被打破 |
25 | SIGXFSZ | dump | 文件大小限制被打破 |
26 | SIGVTALRM | 终止 | 虚拟定时时钟 |
27 | SIGPROF | 终止 | profile timer clock |
28 | SIGWINCH | 忽略 | 窗口尺寸调整 |
29 | SIGIO/SIGPOLL | 终止 | I/O可用 |
30 | SIGPWR | 终止 | 电源异常 |
31 | SIGSYS/SYSUNUSED | dump | 系统调用异常 |
在python中的信号处理函数,即当捕捉到相应的函数之后,需要做的操作,该函数需要有两个参数。
import signal
import time
# 信号处理函数
def signal_handler(signum, frame):
print ('Received signal: ', signal)
while True:
signal.signal(signal.SIGINT, signal_handler)
while True:
print ('Waiting...')
time.sleep(1)
测试结果为: Waiting… Waiting… (‘Received signal: ‘,)