Linux 操作系统下常见信号详解

注释:终止+core:表示在进程当前工作目录的core文件中复制了该进程的内存映像,该文件名为core,可以使用core文件检查进程终止时的状态。

  • | SIGINT
    功能: 终端中断符
    默认动作: 终止
    说明: 当用户按中断键(Ctrl+C)时,终端驱动程序产生此信号并发送至前台进程组中的每一个进程,当一个进程在运行时失控,特别是在终端输出大量信息时,常用此信号终止它。

  • | SIGQUIT
    功能: 终端退出符
    默认动作: 终止+core
    说明: 当用户在终端按退出键(Ctrl+\)时,终端驱动程序产生此信号,并发送给前台进程中所有进程,此信号不仅终止前台进程组,同时产生一个core文件。

  • | SIGILL
    功能: 非法硬件指令
    默认动作: 终止+core
    说明: 此信号表示进程已执行一条非法硬件指令

  • | SIGTRAP
    功能: 硬件故障
    默认动作: 终止+core
    说明: 指示一个实现定义的硬件故障

  • | SIGABRT/SIGIOT
    功能: 异常终止
    默认动作: 终止+core
    说明: 调用 abort 函数产生此信号,进程异常终止

  • | SIGBUS
    功能: 硬件故障
    默认动作: 终止+core
    说明: 指示一个实现定义的硬件故障,当出现某些类型的内存故障时,常产生此信号

  • | SIGFPE
    功能: 算术异常
    默认动作: 终止+core
    说明: 此信号表示算术运算异常,如除以0、浮点溢出。

  • | SIGKILL
    功能: 终止
    默认动作 终止
    说明: 这是两个不能被捕捉或忽略的信号之一,它向系统管理员提供一个可以杀死任一进程的可靠方法

  • | SIGUSR1
    功能: 用户定义信号
    默认动作 终止
    说明: 用户定义信号,可用于应用程序

  • | SIGSEGV
    功能: 无效的内存引用
    默认动作 终止+core
    说明: 指示进程进行了一次无效的内存引用,通常说明程序有错,比如 访问了一个未经初始化的指针。

  • | SIGUSR2
    功能: 用户定义信号
    默认动作 终止
    说明: 用户定义信号,可用于应用程序

  • | SIGPIPE
    功能: 写至无读进程的管道
    默认动作 终止
    说明: 如果在管道的读进程终止时写管道,则产生此信号,当类型为SOCK_STREAM的套接字已不再连接时,进程写该套接字也产生此信号。

  • | SIGALRM
    功能: 定时器超时
    默认动作 终止
    说明: 当使用alarm 函数设置的定时器超时时,产生此信号,由setitimer 函数设置的时间间隔已经超时也产生此信号

  • | SIGTERM
    功能: 终止
    默认动作 终止
    说明: 这是由kill命令发出的系统默认终止信号,由于该信号是由应用程序捕获的,所以使用SIGTERM也让程序有机会在退出之前做好清理工作,与SIGKILL不同的是,SIGKILL不能捕捉。

  • | SIGCHLD
    功能: 子进程状态改变
    默认动作 忽略
    说明: 在子进程终止或者停止时,SIGCHLD 信号发送给父进程,系统默认忽略此信号,但是如果希望父进程知道子进程状态可以捕获该信号,捕该信号需要调用wait 函数获取子进程id和状态。

  • | SIGCONT
    功能: 使暂停进程继续
    默认动作 忽略
    说明: 此信号发送给需要继续运行但是目前是暂停状态的进程,如果接收到此信号的进程处于暂时状态则继续运行,否则忽略。

  • | SIGSTOP
    功能: 停止
    默认动作 停止进程
    说明: 这是一个作业控制信号,它停止一个信号,此信号不能被忽略和捕捉的两个信号之一

  • | SIGTSTP
    功能: 终端停止符
    默认动作 停止进程
    说明: 交停止信号,当用户在终端上按起挂起键(Ctrl+z)时,终端驱动程序产生此信号并发送给前台所以进程。

  • | SIGTTIN
    功能: 后台读控制tty
    默认动作 停止进程
    说明: 当一个后台进程组进程试图读其控制终端时,终端驱动程序产生此信号,在以下情况不产生此信号:1.读进程忽略或阻塞此信号,2.读进程所属进程组是孤儿进程组,此时读操作返回错误。

  • | SIGTTOU
    功能: 后台写控制tty
    默认动作 停止进程
    说明: 当一个后台进程组进程试图写其控制终端时,终端驱动程序产生此信号,在以下情况不产生此信号:1.写进程忽略或阻塞此信号,2.写进程所属进程组是孤儿进程组,此时读操作返回错误。

  • | SIGURG
    功能: 紧急情况(套接字)
    默认动作 忽略
    说明: 此信号通知进程发生一个紧急情况,在网络连接上接到带外的数据时,可以选择产生此信号

  • | SIGXCPU
    功能: 超过CPU限制
    默认动作 终止+core
    说明: 如果进程超过了其软CPU时间限制,则产生此信号。

  • | SIGXFSZ
    功能: 超过文件长度限制
    默认动作 终止+core
    说明: 如果进程超过了其软文件长度限制,则产生此信号

  • | SIGVTALRM
    功能: 虚拟时间闹钟
    默认动作 终止
    说明: 当由setitimer 函数设置的虚拟时间超时产生此信号。

  • | SIGPROF
    功能: 梗概时间超时
    默认动作 终止
    说明: 当由setitimer 函数设置的梗概时间超时产生此信号。(将来大概率会移除该信号)

  • | SIGPOLL/SIGIO
    功能: 可轮询事件
    默认动作 终止
    说明: 当一个可轮询设备上发生一个特定事件时产生该信号(将来大概率会移除该信号)

  • | SIGIO
    功能: 异步IO
    默认动作 终止
    说明: 产生异步IO时产生该信号

  • | SIGSYS/SIGUNUSED
    功能: 无效的系统调用
    默认动作 终止+core
    说明: 进程执行一条机器指令,内核认为是一条系统调用,但是该指令指示系统调用类型的参数是无效的。比如系统不支持较早版本的系统调用

  • | SIGSTKFLT
    功能: 协处理器栈故障
    默认动作 终止+core
    说明: 用于数学协处理器栈故障,并非由内核产生

  • | SIGWINCH
    功能: 终端窗口大小改变信号
    默认动作 忽略
    说明: 终端窗口大小改变产生此信号

  • | SIGPWR
    功能: 电源失效/重启
    默认动作 终止
    说明: 当电压过低时,进程发送该信号到init进程,init进程处理停机操作

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值