Linux的几种信号解释

SIGHUP     终止进程     终端线路挂断 
SIGINT    
终止进程    
中断进程 
SIGQUIT  
建立CORE文件终止进程,并且生成core文件 
SIGILL  
建立CORE文件      
非法指令 
SIGTRAP  
建立CORE文件      
跟踪自陷 
SIGBUS  
建立CORE文件      
总线错误 
SIGSEGV  
建立CORE文件      
段非法错误 
SIGFPE  
建立CORE文件      
浮点异常 
SIGIOT  
建立CORE文件      
执行I/O自陷 
SIGKILL  
终止进程    
杀死进程 
SIGPIPE  
终止进程    
向一个没有读进程的管道写数据 
SIGALARM  
终止进程    
计时器到时 
SIGTERM  
终止进程    
软件终止信号 
SIGSTOP  
停止进程    
非终端来的停止信号 
SIGTSTP  
停止进程    
终端来的停止信号 
SIGCONT  
忽略信号    
继续执行一个停止的进程 
SIGURG  
忽略信号    
I/O紧急信号 
SIGIO    
忽略信号    
描述符上可以进行I/O 
SIGCHLD  
忽略信号    
当子进程停止或退出时通知父进程 
SIGTTOU  
停止进程    
后台进程写终端 
SIGTTIN  
停止进程    
后台进程读终端 
SIGXGPU  
终止进程    
CPU时限超时 
SIGXFSZ  
终止进程    
文件长度过长 
SIGWINCH  
忽略信号    
窗口大小发生变化 
SIGPROF  
终止进程    
统计分布图用计时器到时 
SIGUSR1  
终止进程    
用户定义信号1 
SIGUSR2  
终止进程    
用户定义信号2 
SIGVTALRM
终止进程    
虚拟计时器到时

1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控 
制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端 
不再关联. 
2) SIGINT 程序终止(interrupt)信号,
在用户键入INTR字符(通常是Ctrl-C)时发出 
3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-)来控制.
进程在因收到 
SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信 
号. 
4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行 
数据段. 堆栈溢出时也有可能产生这个信号. 
5) SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用. 
6) SIGABRT 程序自己发现错误并调用abort时产生. 
6) SIGIOT 在PDP-11上由iot指令产生,
在其它机器上和SIGABRT一样. 
7) SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg:
访问一个四个字长 
的整数, 但其地址不是4的倍数. 
8) SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢 
出及除数为0等其它所有的算术的错误. 
9) SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略. 
10) SIGUSR1 留给用户使用 
11) SIGSEGV 试图访问未分配给自己的内存,
或试图往没有写权限的内存地址写数据. 
12) SIGUSR2 留给用户使用 
13) SIGPIPE Broken pipe 
14) SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间.
alarm函数使用该 
信号. 
15) SIGTERM 程序结束(terminate)信号,
与SIGKILL不同的是该信号可以被阻塞和 
处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这 
个信号. 
17) SIGCHLD 子进程结束时, 父进程会收到这个信号. 
18) SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞.
可以用 
一个handler来让程序在由stopped状态变为继续执行时完成特定的 
工作. 例如, 重新显示提示符 
19) SIGSTOP 停止(stopped)进程的执行.
注意它和terminate以及interrupt的区别: 
该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略. 
20) SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略.
用户键入SUSP字符时 
(通常是Ctrl-Z)发出这个信号 
21) SIGTTIN 当后台作业要从用户终端读数据时,
该作业中的所有进程会收到SIGTTIN 
信号. 缺省时这些进程会停止执行. 
22) SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式)时收到. 
23) SIGURG
有"紧急"数据或out-of-band数据到达socket时产生. 
24) SIGXCPU 超过CPU时间资源限制.
这个限制可以由getrlimit/setrlimit来读取/ 
改变 
25) SIGXFSZ 超过文件大小资源限制. 
26) SIGVTALRM 虚拟时钟信号. 类似于SIGALRM,
但是计算的是该进程占用的CPU时间. 
27) SIGPROF 类似于SIGALRM/SIGVTALRM,
但包括该进程用的CPU时间以及系统调用的 
时间. 
28) SIGWINCH 窗口大小改变时发出. 
29) SIGIO 文件描述符准备就绪, 可以开始进行输入/输出操作. 
30) SIGPWR Power failure

有两个信号可以停止进程:SIGTERM和SIGKILL。
SIGTERM比较友好,进程能捕捉这个信号,根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。在某些情况下,假如进程正在进行作业而且不能中断,那么进程可以忽略这个SIGTERM信号。

对于SIGKILL信号,进程是不能忽略的。这是一个
“我不管您在做什么,立刻停止”的信号。假如您发送SIGKILL信号给进程,Linux就将进程停止在那里。

时间: 2024-10-29 15:53:31

Linux的几种信号解释的相关文章

linux下的常见信号总结

在linux下有很多信号,按可靠性分为可靠信号和非可靠信号,按时间分为实时信号和非实时信号,linux进程也有三种方式来处理收到的信号: (1)忽略信号,即对信号不做任何处理,其中,有两个信号不能忽略:SIGKILL及SIGSTOP: (2)捕捉信号.定义信号处理函数,当信号发生时,执行相应的处理函数: (3)执行缺省操作,Linux对每种信号都规定了默认操作. Linux进程对实时信号的缺省反应是进程终止.但是对于高性能服务器编程来说,这是致命的缺陷,对于这类服务器需要保证在收到各种信号后仍然

[转]Linux下的常见信号总结

转自 https://www.cnblogs.com/gaorong/p/6430905.html 在linux下有很多信号,按可靠性分为可靠信号和非可靠信号,按时间分为实时信号和非实时信号,linux进程也有三种方式来处理收到的信号: (1)忽略信号,即对信号不做任何处理,其中,有两个信号不能忽略:SIGKILL及SIGSTOP: (2)捕捉信号.定义信号处理函数,当信号发生时,执行相应的处理函数: (3)执行缺省操作,Linux对每种信号都规定了默认操作. Linux进程对实时信号的缺省反应

linux信号解释(4)--C语言下的理解

上一节中中简单介绍了信号的处理机制,就是调用函数库来实现信号的处理,因此,在这节中,介绍在C语言下如何理解信号的处理机制. 创建一个文件signal.c,文件内容如下:(对于学过一下C语言的童鞋来说是不是很熟悉呢) #include<signal.h> //信号函数库 #include<unistd.h> //C和C++语言提供对POSIX #include<stdio.h> //标准的输入输出库 void signalout(int signo) //自定义signa

Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存

Linux进程间通信--进程,信号,管道,消息队列,信号量,共享内存 参考:<linux编程从入门到精通>,<Linux C程序设计大全>,<unix环境高级编程> 参考:C和指针学习 说明:本文非常的长,也是为了便于查找和比较,所以放在一起了 Linux 传统的进程间通信有很多,如各类管道.消息队列.内存共享.信号量等等.但它们都无法介于内核态与用户态使用,原因如表 通信方法 无法介于内核态与用户态的原因 管道(不包括命名管道) 局限于父子进程间的通信. 消息队列 在

linux的3种特殊权限

linux的3种特殊权限 特殊权限分为3种,分别是:SUID:作用于用户:只能作用于可执行的二进制文件SGID:作用于所属组:只能作用于可执行的二进制文件Sticky:粘滞位.作用于其他人,只有自己才能删除自己的文件(root除外) 用户通过程序(一般程序对所有人都是可执行的,当然也有例外)去访问文件,取决于用户对程序文件是否有执行权限当用户(发起者)去运行一个进程时,他就是这个进程的拥有者,进程的属组也是发起者所属的组(这里所说的拥有者是表现为这个程序在内存的拥有者,表现为进程,与这个程序在硬

Linux下几种文件传输命令

Linux下几种文件传输命令 sz rz sftp scp 最近在部署系统时接触了一些文件传输命令,分别做一下简单记录: 1.sftp Secure Ftp 是一个基于SSH安全协议的文件传输管理工具.由于它是基于SSH的,会在传输过程中对用户的密码.数据等敏感信息进行加密,因此可以有效的防止用户信息在传输的过程中被窃取,比FTP有更高的安全性.在功能方面与FTP很类似,不仅可以传输文件数据,而且可以进行远程的文件管理(如建立,删除,查看文件列表等操作).Sftp与ftp虽然只有一字之差,但基于

Linux中四种进程或线程同步互斥控制方法

原文地址:http://blog.itpub.net/10697500/viewspace-612045/ 一.Linux中 四种进程或线程同步互斥的控制方法: 1.临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问. 2.互斥量:为协调共同对一个共享资源的单独访问而设计的. 3.信号量:为控制一个具有有限数量用户资源而设计. 4.事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始. 二.临界区(Critical Section) 保证在某一时刻只有一个线程

Linux系统开发6 信号

[本文谢绝转载,原文来自http://990487026.blog.51cto.com] <大纲> Linux系统开发6 信号 linux系统有64种信号 signal man文档 终端按键信号 ctrl +c SIGIN ctrl +z SIGTSTP ctrl +\ SIGQUIT 硬件产生信号 浮点数例外信号  访问非法内存 kill()函数 信号与权限 kill()函数的pid 与返回值 信号产生原因 raise() 信号 abort() 信号 alarm() 信号 收到信号的默认操作

Linux 进程通信之 ——信号和信号量总结

如今最经常使用的进程间通信的方式有:信号,信号量,消息队列,共享内存.       所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂.机制不同,复杂度也不一样.通信是一个广义上的意义,不仅仅指传递一些massege.他们的用法是基本相同的,所以仅仅要掌握了一种的用法,然后记住其他的用法就能够了. 1. 信号       在我学习的内容中,主要接触了信号来实现同步的机制,据说信号也能够用来做其他的事      情,可是我还不知道做什么.       信号和信号量是