平時我們在終端里面用的 CTRL C 結(jié)束進程或者CTRL Z 暫停進程,都屬于信號的一種。
Linux里面信號有60多個,分為標準信號和實時信號,編號從1到31,34到64。不同的內(nèi)核版本略有區(qū)別。
發(fā)送信號一般用 kill 指令,比如啟動一個進程,先查到進程的 ID 號,然后使用 kill -2 加上進程號就能結(jié)束進程。其中,-2 表示 SIGINT 信號,這個宏在 signal.h 頭文件里面有定義。使用這些信號的時候,既可以用宏定義,又可以用編號。
結(jié)束一個進程,很多時候會選擇 kill -9 ,為什么選擇 9 這個信號,因為這個信號比較特殊,所有進程都不能忽略它。
kill不僅是命令,還是一個函數(shù),用法和命令差不多也是提供進程號,加上要發(fā)送的信號值,收到信號的進程默認動作是結(jié)束。不過也可以通過 signal 或者 sigaction 來指定處理方法,可以是忽略當前信號,也可以執(zhí)行指定的函數(shù)。
審核編輯:黃飛
-
Linux
+關注
關注
87文章
11335瀏覽量
210094 -
函數(shù)
+關注
關注
3文章
4344瀏覽量
62861 -
進程
+關注
關注
0文章
204瀏覽量
13973 -
實時信號
+關注
關注
0文章
4瀏覽量
5200
原文標題:進程間通信之信號
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論