信号机制:signal
信号的基本概念
信号(signal)
- 又叫:软中断信号,是一种异步通信的IPC
- 类似于硬件中断,可以将一个事件以信号形式通知给进程
- 给一个指定的进程发送一个信号量
- 信号只是告诉进程发送了什么事,并不传递数据
- 进程表的表项中有一个软中断信号域,有信号发给该进程,对应位置位
- 进程根据接收信号类型作相应的处理
信号的来源
- 来自shell终端用户输入的各种信号:ctrl + C/D
- 来自其他进程或者进程本身发送的信号
- 来自系统内部的信号
- 硬件异常:如SIGBUS表示总线错误、SIGSEGV表示段错误
- 终端相关信号
- 软件事件相关的信号
一个进程对信号的处理方式
- 缺省行为
- 忽略信号:如SIGIGN、SIGCHLD
- SIGKILL/SIGSTOP比较特殊,不能忽略,所有进程都要在OS管控之下
- 终止进程:SIGTERM、SIGINT、SIGHUP
- 终止进程并内核转储:SIGBUS、SIGABRT、SIGQUIT
- 忽略信号:如SIGIGN、SIGCHLD
- 捕获信号并执行信号注册的handler
- 通过signal系统调用可以改变信号的处理行为,即注册新的handler</