Linux常用命令与信号映射

linux系统下,进程对信号的默认响应方式有5种:

1)  忽略信号,即当做没收到信号一样;

2)  终止进程;

3)  产生核心转储文件,同时进程终止;

4)  停止进程,即暂停进程的执行;

5)  于之前的暂停之后恢复执行;

处理方式2和3都会导致进程终止执行并立即退出,处理方式1、4、5不会造成进程终止执行。因此,可以将信号粗略的分为两类,一类是会导致进程终止并退出的信号;另一类则是不会导致进程终止并退出的信号。
 

 信号            命令/操作              默认行为         相应事件                       退出码(信号编号+128)      信号编号

SIGKILL       kill -9 pid                终止               杀死进程                             137                                            9

SIGTERM    killall  pname          终止               软件终止信号

SIGINT         ctrl + c                   终止                来自键盘的终止

SIGTSTP     ctrl + z              停止直到下一个SIGCONT     来自终端的停止信号

SIGSTOP                             停止直到下一个SIGCONT      不是来自终端的停止信号

SIGSEGV                             终止并转储内存                   无效的内存引用

SIGCHLD                              忽略                                     一个子进程终止或停止

SIGALRM                               终止                                alarm 函数的定时器信号

SIGUSER1                             终止                                用户定义的信号1

SIGUSER2                             终止                                用户定义的信号2

SIGFPE                                终止并转储内存                浮点异常, 除以0

SIGILL                                    终止                                      非法指令

 

SIGSTOP、SIGKILL是两个不能捕捉的信号或忽略的信号, 其它信号可以通过signal 函数修改默认的行为

 

The default signal for kill is SIGTERM

$ kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
 6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX

说明:
只有第9种信号(SIGKILL)才可以无条件终止进程,SIGKILL信号进程无法捕获,进程也不得不无条件终止,其他信号进程都有权利忽略
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
CHLD 17 父进程或init进程进行收拾僵尸进程用到的信号

 

当进程因收到信号被终止执行退出后,父进程可以通过调用wait或waitpid得到它的exit code。进程被各信号终止的退出状态码总结如下

1.    有可能它的退出状态码是信号编号+128,比如SIGQUIT信号,它的编号为3,进程收到该信号后会core dump,退出状态码为3+128=131;

比如kill -15  cpid    父进程收到的退出码是143

 kill -9     137
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值