linux信号
来源:互联网 发布:关系图算法 编辑:程序博客网 时间:2024/06/01 08:45
和进程退出相关的信号
向进程发送信号导致进程异常退出
调用函数kill()发送信号
#include <sys/types.h> #include <signal.h> int kill(pid_t pid, int sig);
调用函数 kill() 后,进程进入内核态向目标进程发送指定信号;目标进程在接收到信号后,默认信号处理程序被调用,进程异常退出。
用kill命令发送信号
kill SIGx PID
在实现上,kill 命令也是调用 kill 系统调用函数来发送信号。
在终端使用键盘发送信号
常见的中断字符组合是,使用 control-C 发送 SIGINT 信号,使用 control-\ 发送 SIGQUIT 信号,使用 control-z 发送 SIGTSTP 信号。
代码错误导致进程运行时异常退出
信号与进程异常退出有着紧密的关系:第一类情况是因为外部环境向进程发送信号,这种情况下发送的信号是异步信号,信号的到来与进程的运行是异步的;第二类情况是进程非法操作触发处理器异常,然后异常处理函数在内核态向进程发送信号,这种情况下发送的信号是同步信号,信号的到来与进程的运行是同步的。这两种情况都有信号产生,并且最终都是信号处理程序终止进程运行。它们的区别是信号产生的信号源不同,前者是外部信号源产生异步信号,后者是进程自身作为信号源产生同步信号。
所以,信号是进程异常退出的直接原因。当进程异常退出时,进程必然接收到了信号。
有一个问题保留着,不知道哪位大侠知道相关的函数,能够显示程序收到的所有的信号。
参考文章
- 详谈 UNIX 环境进程异常退出 2.
0 0
- linux 信号&信号处理
- linux 信号&信号处理
- linux 信号&信号处理
- linux 信号 信号集
- linux信号--阻塞信号
- Linux信号
- linux信号
- Linux信号
- linux 信号
- linux 信号
- linux 信号
- Linux 信号
- linux信号
- linux 信号
- linux 信号
- linux信号
- Linux信号
- Linux 信号
- nginx+uwsgi部署django
- 一次spark写入hbase延时问题的排查
- 1010
- MySQL数据类型详解
- 斐波那契的纠结 [Tyvj 1532]
- linux信号
- Mac中,Genymotion模拟器开启后,在AS无法看到设备的解决方法
- 利用手势控制arduino输出端口
- 命令行模式的Linux小结
- 关于数据结构与算法的网站
- Linux学习----grep及正则表达式
- 高效交换两个数
- github 上传代码
- 复习(数据结构):复杂度