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查看更多信號
信號處理
留待研究
linux系統知識 - 信號基礎