1. 程式人生 > >linux系統知識 - 信號基礎

linux系統知識 - 信號基礎

www 後臺 color 傳遞 發送 class ref 接收 lan

作者: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系統知識 - 信號基礎