linux系统知识 - 信号基础
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!
参考链接
http://www.cnblogs.com/vamei/archive/2012/10/04/2711818.html
作用
向进程传递信息的方式。
使用情景
内核扮演着进程管理员的角色
内核需要通知进程信息
A进程要告诉B进程一定的信息
产生方式
内核产生,告诉某进程(如除0错误)
某一进程产生,要告诉其他进程(如手机上的清理后台应用)
执行过程
每个进程的附加信息中有位置专门用于保存接收到的信号。
当进程执行系统调用时,在系统调用完成后退出内核时,都回顺便查看信号。
如果有信号,就会执行该信号对应的操作,这个步骤称信号处理(signal disposition)/执行(deliver)信号
从信号生成到信号传递,信号处于等待状态(pending)
信号阻塞
我们可以设计程序,让其生成的进程阻塞(block)某些信号(就是让系统暂时保留信号待以后发送,防止打断敏感的操作),直至进程取消阻塞(unblock)或者无视信号
常见信号
SIGINT interrupt打断,[Ctrl]+c或者从shell中发出信号
SIGQUIT quit退出,[Ctrl]+\或者从shell中发出信号
SIGSTOP stop暂停,[Ctrl]+z或者从shell中发出信号
SIGCONT 通知暂停的进程继续
SIGALRM 定时器,程序在一定时间之后才生成该信号
shell中发出信号的方法:kill
man 7 signal查看更多信号
信号处理
留待研究