一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四

聯(lián)系我們 - 廣告服務(wù) - 聯(lián)系電話:
您的當(dāng)前位置: > 關(guān)注 > > 正文

環(huán)球動態(tài):【進程通信】Signal信號 信號的來源是哪?

來源:CSDN 時間:2022-12-12 08:32:37

信號(signal)

軟中斷信號(signal,又簡稱為信號)是Linux下用來在進程間傳遞消息的方式之一,也是進程間唯一的異步通信方式。從命名中可以看出信號的實質(zhì)很像中斷。進程間可以通過調(diào)用kill庫函數(shù)發(fā)送軟中斷信號,Linux內(nèi)核也可能給進程發(fā)送信號,用以告知該進程發(fā)生了某個異步事件。

注意,信號只用來告知進程發(fā)生了某個異步事件,并不用來傳遞數(shù)據(jù)。進程收到信號后會有三種處理方式:


(資料圖片)

忽略,不做任何處理執(zhí)行預(yù)先設(shè)置的處理函數(shù)(就像中斷服務(wù)程序一樣)采用系統(tǒng)的默認(rèn)操作,大部分是終止進程

信號的來源

用戶

一般是鍵盤的輸入會作為信號發(fā)送給進程,比如:Ctrl + C發(fā)送SIGINT信號給進程,默認(rèn)動作為終止進程;Ctrl + \發(fā)送SIGQUIT信號給進程,默認(rèn)動作為終止進程并進行內(nèi)核映像轉(zhuǎn)儲(core dump)

內(nèi)核

當(dāng)進程執(zhí)行出錯時,內(nèi)核給進程發(fā)送一個對應(yīng)信號,例如:非法內(nèi)存引用、浮點數(shù)溢出、執(zhí)行非法指令

進程

C++的kill庫函數(shù)用于進程間發(fā)送信號

信號的類型

信號名信號值默認(rèn)處理動作發(fā)出信號的原因

SIGINT2終止進程鍵盤中斷Ctrl+c

SIGQUIT3終止進程并進行內(nèi)核映像轉(zhuǎn)儲鍵盤的退出鍵被按下

SIGKILL9終止進程,并且不能被捕獲、忽略采用kill -9 進程編號 強制殺死程序。

SIGSEGV11終止進程并進行內(nèi)核映像轉(zhuǎn)儲無效的內(nèi)存引用

SIGTERM15終止進程采用“kill 進程編號”或“killall 程序名”通知程序。

SIGCHLD20,17,18忽略此信號子進程結(jié)束信號

PS:

內(nèi)核映像轉(zhuǎn)儲(core dump),內(nèi)核映像轉(zhuǎn)儲是指將進程數(shù)據(jù)在內(nèi)存的映像和進程在內(nèi)核結(jié)構(gòu)中的部分內(nèi)容以一定格式轉(zhuǎn)儲到文件系統(tǒng),并且進程退出執(zhí)行,這樣做的好處是為程序員 提供了方便,使得他們可以得到進程當(dāng)時執(zhí)行時的數(shù)據(jù)值,允許他們確定轉(zhuǎn)儲的原因,并且可以調(diào)試他們的程序。

信號的捕獲處理

#includesighandler_t signal(int signum, sighandler_t handler)//signum 表示信號的編號    //handler 表示信號的處理方式,有三種:    1. SIG_IGN:忽略改信號,不作為    2. SIG_DFL:恢復(fù)該信號的默認(rèn)處理方法    3. 自定義處理函數(shù),注意函數(shù)參數(shù)為 (int signum)

信號的發(fā)送

int kill(pid_t pid, int sig)//pid 目標(biāo)進程號,有三種情況:    1. pid>0 將信號sig傳給號為pid的進程    2. pid=0 將信號sig傳給同進程組的所有進程(包括自己),常用于父進程給子進程發(fā)送信號    3. pid=-1 將信號廣播到系統(tǒng)內(nèi)所有進程,例如系統(tǒng)關(guān)機時向所有登錄窗口廣播關(guān)機信息    //sig 被發(fā)送的信號編號

信號的應(yīng)用

屏蔽信號

通常為了程序不被干擾,程序開頭通常會屏蔽所有信號,然后再用signal函數(shù)對關(guān)心的信號設(shè)置相應(yīng)的處理方式。

for(int i=0; i<100; i++) signal(i, SIG_IGN);

搞點好玩的

改變信號 SIGINT和 SIGTERM的捕獲處理,設(shè)計一個 ctrl+C和 kill都?xì)⒉坏舻倪M程:

#include#include#includevoid func(int sig){if (sig == SIGINT)        printf("\b\b殺不死,哈哈哈哈。\n");    else if (sig == SIGTERM)        printf("還是殺不死,哈哈哈哈。\n");}int main(){for (int ii = 0; ii < 100; ii++)        signal(ii, SIG_IGN); // 屏蔽全部的信號    signal(SIGINT, func);    signal(SIGTERM, func); // 設(shè)置SIGINT和SIGTERM的處理函數(shù)    while (1);}

效果:

使用Ctrl+C嘗試關(guān)掉進程:

用 ps -ef | grep signal找到其進程號,嘗試用 kill 直接干掉:

可以看見,kill + 進程號或 killall + 進程名對它都無效,那改怎么殺死這個進程呢?如圖,用 kill -9 進程號:

因為kill -9 進程號發(fā)送的信號是 SIGKILL,這個信號無法被捕獲或忽略,能夠快準(zhǔn)狠殺掉進程

使系統(tǒng)休眠

這個是我嘗試用 kill() 函數(shù)向系統(tǒng)所有進程發(fā)送 SIGKILL 信號后發(fā)現(xiàn)的,當(dāng)然是在虛擬機上,我可不敢在主機上這樣搞:

#include#includeint main(){kill(-1, SIGKILL);}

效果是虛擬機進入休眠,輸入密碼后能再進入,原以為會直接關(guān)機呢

責(zé)任編輯:

標(biāo)簽:

相關(guān)推薦:

精彩放送:

新聞聚焦
Top 一区二区三区电影_国产伦精品一区二区三区视频免费_亚洲欧美国产精品va在线观看_国产精品一二三四
亚洲国产成人在线视频| 国产视频在线观看一区二区三区| 日韩亚洲不卡在线| 亚洲午夜精品福利| 久久久欧美一区二区| 欧美日韩亚洲高清一区二区| 国产欧美日韩亚洲一区二区三区| 亚洲激情电影在线| 香蕉久久一区二区不卡无毒影院| 欧美成人一区二区三区在线观看| 国产精品极品美女粉嫩高清在线| 影音先锋中文字幕一区二区| 欧美亚洲一区二区在线| 欧美激情精品久久久久久久变态 | 久久精品观看| 欧美日韩精品一本二本三本| 狠狠综合久久av一区二区小说| 夜夜狂射影院欧美极品| 麻豆精品网站| 国产一区欧美日韩| 亚洲一区视频| 欧美日韩一区在线视频| 亚洲国产精品精华液网站| 欧美一区二区三区电影在线观看| 欧美日韩亚洲一区二区三区在线观看 | 国产视频综合在线| 亚洲蜜桃精久久久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产日韩精品视频一区二区三区| 在线一区二区视频| 欧美视频三区在线播放| 一区二区三区精品| 欧美日韩在线视频首页| 一区二区精品在线观看| 欧美午夜激情小视频| 一区二区三区高清在线观看| 欧美激情精品久久久久久| 亚洲激情偷拍| 欧美精品成人在线| 一二美女精品欧洲| 国产精品美女久久久浪潮软件| 亚洲性xxxx| 国产一区二区成人久久免费影院| 亚洲欧美日韩在线观看a三区| 国产精品实拍| 久久久久.com| 亚洲激情一区二区| 欧美日韩妖精视频| 欧美一区二区三区日韩| 韩日成人av| 欧美激情网站在线观看| 亚洲一品av免费观看| 国产亚洲一本大道中文在线| 久久免费高清视频| 亚洲精品国产系列| 国产精品日日摸夜夜添夜夜av| 欧美一区二区三区视频| 亚洲高清影视| 国产精品国产自产拍高清av| 久久久国产91| 日韩一级裸体免费视频| 国产偷国产偷精品高清尤物| 老司机成人网| 亚洲永久免费av| 在线日本欧美| 国产精品看片你懂得| 久久性色av| 亚洲香蕉在线观看| 亚洲东热激情| 国产精品婷婷| 欧美高清视频在线播放| 欧美亚洲综合另类| 99re成人精品视频| 一区二区在线看| 国产精品videosex极品| 久久久久一区| 午夜精品成人在线| 最新国产成人av网站网址麻豆| 国产精品亚洲产品| 欧美成人中文字幕在线| 欧美一区二区黄| 一区二区冒白浆视频| 亚洲成色www久久网站| 国产伦精品一区二区三区免费迷| 欧美极品在线视频| 男人的天堂亚洲在线| 久久国产精品99精品国产| 亚洲午夜精品福利| 99国产精品久久久| 最新亚洲电影| 亚洲国产精品黑人久久久| 一区在线电影| 激情五月综合色婷婷一区二区| 国产精品稀缺呦系列在线| 欧美日韩精选| 欧美色图一区二区三区| 欧美日韩午夜剧场| 欧美日韩免费一区| 欧美日韩亚洲一区二区三区四区| 男女激情久久| 欧美不卡高清| 欧美国产大片| 欧美日韩精品在线| 欧美午夜www高清视频| 欧美性一二三区| 欧美日一区二区在线观看| 欧美日韩国产小视频在线观看| 欧美激情亚洲精品| 欧美另类极品videosbest最新版本| 欧美不卡在线视频| 欧美精品一区在线播放| 欧美日韩99| 欧美午夜免费影院| 国产欧美一区二区精品仙草咪 | 你懂的成人av| 欧美sm极限捆绑bd| 欧美日韩精品欧美日韩精品一| 欧美视频福利| 国产欧美日韩亚洲精品| 红桃视频国产一区| 亚洲人成精品久久久久| 亚洲一区二区三区高清| 久久av一区二区| 免费一级欧美在线大片| 欧美久久婷婷综合色| 欧美日韩中文精品| 国产欧美日韩一区| 亚洲国产精品日韩| 亚洲视频axxx| 久久激情视频免费观看| 欧美大学生性色视频| 国产精品久久久久久av下载红粉| 国产一区二区三区视频在线观看| 亚洲高清成人| 亚洲欧美视频一区| 免费在线播放第一区高清av| 欧美图区在线视频| 在线精品视频一区二区| 亚洲视频免费看| 久久婷婷久久| 国产精品久久久久久久久久免费看 | 国产麻豆视频精品| 激情成人av在线| 在线午夜精品自拍| 久久九九热re6这里有精品| 欧美日韩国产首页在线观看| 国产综合一区二区| 亚洲一区二区久久| 欧美.www| 国产亚洲亚洲| 午夜久久久久久| 欧美日韩理论| 亚洲激情网址| 欧美在线观看网站| 欧美午夜免费电影| 日韩亚洲成人av在线| 可以看av的网站久久看| 国产日韩av在线播放| 亚洲午夜激情网站| 欧美日韩在线第一页| 亚洲精品久久久久中文字幕欢迎你 | 欧美激情精品久久久久久久变态| 国产伦精品一区二区三区照片91| 亚洲欧洲在线播放| 久久综合久色欧美综合狠狠| 国产美女精品免费电影| 一区二区三区欧美亚洲| 欧美国产日产韩国视频| 在线精品亚洲一区二区| 欧美在线不卡视频| 国产精品家庭影院| 一区二区不卡在线视频 午夜欧美不卡'| 久久精品道一区二区三区| 欧美丝袜一区二区| 99精品99久久久久久宅男| 欧美福利专区| 亚洲精品午夜精品| 欧美区一区二| 亚洲一二三区在线观看| 欧美日韩在线观看一区二区| 日韩一级在线| 国产精品久久91| 午夜激情亚洲| 国产在线拍偷自揄拍精品| 久久精品卡一| 亚洲国产国产亚洲一二三| 欧美精品 国产精品| 日韩视频免费在线观看| 欧美视频你懂的| 午夜天堂精品久久久久| 国产一区二区三区四区三区四| 久久久999精品免费| 亚洲福利精品| 欧美日韩伊人| 久久er99精品| 亚洲欧洲另类国产综合| 欧美日韩一区三区四区| 欧美淫片网站| 亚洲人成7777| 国产精品素人视频|