系统信号表格和一些资料

来源:互联网 发布:男士服装搭配软件 编辑:程序博客网 时间:2024/06/10 06:25

 

         

01

SIGHUP

挂起(hangup)当终端机察觉到终止连线操作时便会传送这个信号

02

SIGINT

中断,当用户从键盘按^c键或^break键时,则会产生此信号

03

SIGQUIT

退出,当用户从键盘按quit键时,如CTRL+\,则会产生此信号

04

SIGILL

非法指令(进程执行了一个不合法德CPU指令)

05

SIGTRAP

跟踪陷阱(tracetrap),当子进程因被追踪而暂停时产生此信号给父进程

06

SIGIOT

IOT指令

07

SIGBUS

总线错误,BUS发生错误时会产生此信号

08

SIGFPE

浮点运算溢出

09

SIGKILL

杀死、终止进程的信号,此信号不能被拦截或忽略

10

SIGUSR1

用户自定义信号1

11

SIGSEGV

段违例(segmentation violation),进程试图去访问其虚地址空间以外的位置

12

SIGUSR2

用户自定义信号2

13

SIGPIPE

错误的管道;欲写入无读取端的管道时产生此信号

14

SIGALRM

闹钟。当某进程希望在某时间后接收信号时发此信号

15

SIGTERM

软件终止(software termination

16

SIGSTKFLT

堆栈错误

17

SIGHLD

子进程暂停或结束时便会产生此信号给父进程

18

SIGCONT

此信号会让暂停的进程继续执行

19

SIGSTOP

此信号用来让进程暂停执行,此信号不能被拦截或忽略

20

SIGTSTP

当由键盘(CTRL+Z)表示暂停时就产生此信号


signal(SIGPIPE,SIG_IGN):
  当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进
程这个连接已经断开了,不要再写了。根据信号的默认处理规则SIGPIPE信号的默认执行动作是terminate(终止、退出), 所以client会退出。
若不想客户端退出可以把 SIGPIPE设为SIG_IGN
如:   signal(SIGPIPE,SIG_IGN);
这时SIGPIPE交给了系统处理。
服务器采用了fork的话,要收集垃圾进程,防止僵死进程的产生,可以这样处理:
signal(SIGCHLD,SIG_IGN); 交给系统init去回收。
这里子进程就不会产生僵死进程了