文档章节

Linux信号signal

Jlan
 Jlan
发布于 2015/08/03 11:09
字数 939
阅读 56
收藏 7

Linux 信号表  

Linux支持POSIX标准信号和实时信号。下面给出Linux Signal的简表,详细细节可以查看man 7 signal。


信号 取值 默认动作 含义(发出信号的原因)
SIGHUP 1 Term 终端的挂断或进程死亡
SIGINT 2 Term 来自键盘的中断信号
SIGQUIT 3 Core 来自键盘的离开信号
SIGILL 4 Core 非法指令
SIGABRT 6 Core 来自abort的异常信号
SIGFPE 8 Core 浮点例外
SIGKILL 9 Term 杀死
SIGSEGV 11 Core 段非法错误(内存引用无效)
SIGPIPE 13 Term 管道损坏:向一个没有读进程的管道写数据
SIGALRM 14 Term 来自alarm的计时器到时信号
SIGTERM 15 Term 终止
SIGUSR1 30,10,16 Term 用户自定义信号1
SIGUSR2 31,12,17 Term 用户自定义信号2
SIGCHLD 20,17,18 Ign 子进程停止或终止
SIGCONT 19,18,25 Cont 如果停止,继续执行
SIGSTOP 17,19,23 Stop 非来自终端的停止信号
SIGTSTP 18,20,24 Stop 来自终端的停止信号
SIGTTIN 21,21,26 Stop 后台进程读终端
SIGTTOU 22,22,27 Stop 后台进程写终端




SIGBUS 10,7,10 Core 总线错误(内存访问错误)
SIGPOLL
Term Pollable事件发生(Sys V),与SIGIO同义
SIGPROF 27,27,29 Term 统计分布图用计时器到时
SIGSYS 12,-,12 Core 非法系统调用(SVr4)
SIGTRAP 5 Core 跟踪/断点自陷
SIGURG 16,23,21 Ign socket紧急信号(4.2BSD)
SIGVTALRM 26,26,28 Term 虚拟计时器到时(4.2BSD)
SIGXCPU 24,24,30 Core 超过CPU时限(4.2BSD)
SIGXFSZ 25,25,31 Core 超过文件长度限制(4.2BSD)




SIGIOT 6 Core IOT自陷,与SIGABRT同义
SIGEMT 7,-,7
Term
SIGSTKFLT -,16,- Term 协处理器堆栈错误(不使用)
SIGIO 23,29,22 Term 描述符上可以进行I/O操作
SIGCLD -,-,18 Ign SIGCHLD同义
SIGPWR 29,30,19 Term 电力故障(System V)
SIGINFO 29,-,-
SIGPWR同义
SIGLOST -,-,- Term 文件锁丢失
SIGWINCH 28,28,20 Ign 窗口大小改变(4.3BSD, Sun)
SIGUNUSED -,31,- Term 未使用信号(will be SIGSYS)

 

说明:

一些信号的取值是硬件结构相关的(一般alphasparc架构用第一个值,i386ppcsh架构用中间值,mips架构用第三个值, - 表示相应架构的取值未知)。

 

蓝色的是POSIX.1-1990标准信号。

SIGKILLSIGSTOP信号不能被挂钩、阻塞或忽略。

 

青色的是SUSv2POSIX.1-2001定义的信号。

Linux 2.2(包括)内核之前,SIGSYSSIGXCPUSIGXFSZSIGBUS SPARCMIPS架构除外)的默认动作是终止进程,但没有core dumpLinux 2.4遵循POSIX.1-2001要求,这些信号的默认动作改为:终止进程同时做core dump

 

橙色的是其他常见的信号。

信号29Alpha上为SIGINFO / SIGPWR ,在Sparc上为SIGLOST

SIGEMT没有在POSIX.1-2001中说明,但是在大多数的Unices中仍然能见到,典型的默认动作是终止进程并做core dump

SIGPWR没有在POSIX.1-2001中说明,在使用它的一些Unices中典型的默认动作是忽略。

SIGIO没有在POSIX.1-2001中说明,在使用它的一些Unices中典型的默认动作是忽略。

 

    进程可以通过使用sigactionsignal系统调用来改变信号的默认处理方式(使用signal的可移植性差)。进程可以选择下列3种信号处理方式中的一种:

1、执行默认操作;

2、忽略该信号;

3、捕获该信号,但是通过信号句柄来调用自定义的处理函数。

 

    信号可能被阻塞。进程中的每个线程拥有独立的信号掩码,用来表示本线程的信号被阻塞。线程通过pthread_sigmask来设置它的信号掩码。单线程程序可以用sigprocmask来操作信号掩码。在多线程程序中,所有线程处理一个指定信号的默认行为都是一样的。


本文转载自:http://blog.csdn.net/wesleyluo/article/details/5279482

共有 人打赏支持
上一篇: Python的数据类型
下一篇: Redis简单教程
Jlan
粉丝 2
博文 45
码字总数 17474
作品 0
浦东
私信 提问
linux c简单了解signal

一、什么是信号 1、 信号就是软件中断,很多的程序都需要处理信号。信号提供了一种处理异步事件的机制。 例如:当用户在终端下运行一个程序时,用户在键盘键入一个中断键(CTRL+C),则会通过信...

OscerSong
2013/03/10
0
1
Linux下的signal信号机制

在Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。用户可以只将信号发送给用户...

晨曦之光
2012/03/02
830
1
基于OS信号实现Java异步通知

本文将结合操作系统的信号机制,来尝试实现一个简单的,不依赖功能环境的Java异步通知功能。 没有特殊说明,本文所有的示例,都是基于Linux。 信号简介 信号是在软件层次上对中断机制的一种模...

JavaGG
2010/03/24
288
0
linux内核线程对信号的处理过程

linux中的线程分为用户线程和内核线程,用户线程是标准的线程,完全的自主性,完全的抢占性;但是内核线程就不那么好了,某种意义上没有用户线程那么清闲,这个怎么理解呢?用户线程的编写者...

晨曦之光
2012/04/10
938
0
Linux下的signal信号机制

在Linux中,要发送一个信号相当容易。程序员需要知道两个信息:要发送哪个信号,将这个信号发送给哪个进程。可以用 man 7 signal 找到一个可以利用的信号的列表。用户可以只将信号发送给用户...

长平狐
2013/01/06
107
0

没有更多内容

加载失败,请刷新页面

加载更多

ShxViewer_SHX字体查看

ShxViewe 是一款非常实用的SHX字型浏览软件。从CAD里面的字体浏览软件分离出来,帮助我们预览shx字体。 程序长这个样子: 分别打开txt.shx、hztxt.shx、ltypeshp.shx这几个形文件,可以了解一...

一个小妞
21分钟前
0
0
Jenkins的初步使用

Jenkins真是个宝藏软件,今天大概安装使用了一下,感觉还有好多维度可以探索。 1)安装:在Windows上使用的,在https://jenkins.io/download/下载Windows安装包,解压后是一个msi文件,默认安...

莫在全
32分钟前
1
0
技术复习-分布式事务

一、分布式事务解决方案 1.两阶段提交 two phase commit 角色分为协调者、参与者。协调者负责协调所有的参与者。 第一阶段 prepare 协调者发送prepare请求,参与者锁定资源之后返回ready或者...

Lubby
42分钟前
2
0
jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
52分钟前
2
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部