考察父進程被終止后沸停,子進程的不同狀態(tài)

題目
在操作系統(tǒng)中膜毁,一個進程可以創(chuàng)建另一個進程。創(chuàng)建者稱為父進程愤钾,被創(chuàng)建者成為子進程瘟滨。當父進程被終止后,子進程可能有兩種狀態(tài):

  • 子進程一并被終止能颁;
  • 子進程成為孤兒進程杂瘸,被init進程領養(yǎng)。

請在linux實驗驗證:什么情況下出現(xiàn)第一種結果伙菊,什么情況下出現(xiàn)第二種結果败玉。

1.所需知識點匯總整理

進程管理基本語句

  • 查詢進程

查詢正在運行的進程信息

$ps -ef

查詢系統(tǒng)的進程樹靡努,進而查看某個進程的父進程

$pstree

同時查詢進程的id熬荆,和其父進程id

$ps -ef |grep <進程名>
$ps -o pid,ppid,comm
  • 終止進程

殺死指定id的進程

$kill PID

Fork函數(shù)

  • Fork函數(shù)的作用

一般來講, 我們編寫1個普通的c程序, 運行這個程序直到程序結束, 系統(tǒng)只會分配1個pid給這個程序, 也就就說, 系統(tǒng)里只會有一條關于這個程序的進程唾戚。 但是當執(zhí)行Fork()函數(shù)之后杠娱,系統(tǒng)則會包含多條關于這個程序的進程蜓陌。Fork()函數(shù)的作用是復制當前進程(包括進程在內(nèi)存里的堆棧數(shù)據(jù))為1個新的鏡像. 然后這個新的鏡像和舊的進程同時執(zhí)行下去. 相當于本來1個進程, 遇到fork() 函數(shù)后就分叉成兩個進程同時執(zhí)行了. 而且這兩個進程是互不影響

1.PNG

2.實驗操作過程&兩種情況的展示

  • 殺死父進程拟糕,子進程一并終止

查看進程:

查看進程

kill了父進程(電腦同時黑屏了...):

kill了父進程
  • 殺死父進程注祖,子進程保留谓厘,同時轉(zhuǎn)移至init托管——孤兒進程

創(chuàng)建父進程和子進程

#include <stdlib.h>
#include <stdio.h>

int main(){
    printf("Father is created\n\n");

    fork();//create a child process

    printf("Child is created\n\n");

    int i; scanf("%d",&i);   //prevent exiting
    return 0;
}
創(chuàng)建父進程和子進程

運行后系統(tǒng)的進程:

運行后系統(tǒng)的進程

殺掉父進程:

殺掉父進程
殺掉父進程

若希望改進使得父進程結束后财剖,子進程自動結束:

prctl(PR_SET_PDEATHSIG,SIGHUP);

#include <signal.h>
#include <sys/prctl.h>
#include <stdlib.h>
#include <stdio.h>

int main(){
    printf("Father is created\n\n");

    fork();//create a child process

    prctl(PR_SET_PDEATHSIG,SIGHUP);

    printf("Child is created\n\n");

    int i; scanf("%d",&i);   //prevent exiting
    return 0;
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悠夯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子躺坟,更是在濱河造成了極大的恐慌沦补,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件咪橙,死亡現(xiàn)場離奇詭異夕膀,居然都是意外死亡栓袖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門店诗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裹刮,“玉大人,你說我怎么就攤上這事庞瘸∨跗” “怎么了?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵擦囊,是天一觀的道長违霞。 經(jīng)常有香客問我,道長瞬场,這世上最難降的妖魔是什么买鸽? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮贯被,結果婚禮上眼五,老公的妹妹穿的比我還像新娘。我一直安慰自己彤灶,他們只是感情好看幼,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幌陕,像睡著了一般诵姜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上搏熄,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天棚唆,我揣著相機與錄音,去河邊找鬼心例。 笑死宵凌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的契邀。 我是一名探鬼主播摆寄,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼坯门!你這毒婦竟也來了微饥?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤古戴,失蹤者是張志新(化名)和其女友劉穎欠橘,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體现恼,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡肃续,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年黍檩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片始锚。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡刽酱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瞧捌,到底是詐尸還是另有隱情棵里,我是刑警寧澤,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布姐呐,位于F島的核電站殿怜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏曙砂。R本人自食惡果不足惜头谜,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸠澈。 院中可真熱鬧柱告,春花似錦、人聲如沸款侵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽新锈。三九已至,卻和暖如春眶熬,著一層夾襖步出監(jiān)牢的瞬間妹笆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工娜氏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拳缠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓贸弥,卻偏偏與公主長得像窟坐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绵疲,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內(nèi)容

  • Linux 進程管理與程序開發(fā) 進程是Linux事務管理的基本單元哲鸳,所有的進程均擁有自己獨立的處理環(huán)境和系統(tǒng)資源,...
    JamesPeng閱讀 2,451評論 1 14
  • 又來到了一個老生常談的問題盔憨,應用層軟件開發(fā)的程序員要不要了解和深入學習操作系統(tǒng)呢徙菠? 今天就這個問題開始,來談談操...
    tangsl閱讀 4,102評論 0 23
  • 詩寫溫西的雨 ☆田秀 題詩一首在溫西的落葉 隨伴溫西的雨穿越深秋時空 那因風而飛的雨又是因為誰...
    興安居士閱讀 164評論 0 2
  • 數(shù)組是具有相同類型的一種數(shù)據(jù)的集合郁岩,按照維度可分為一維數(shù)組婿奔、二維數(shù)組和多維數(shù)組 數(shù)據(jù)類型 數(shù)組是引用類型(即是對象...
    w黃楊w閱讀 547評論 0 0
  • 離開的號角已經(jīng)吹響驮樊,收拾東西很快用了一個多小時,可是收拾心我卻用了大半年都沒有收拾完片酝。郵寄東西很快半小時就辦完了囚衔,...
    張樂天閱讀 249評論 0 0