linux linux 進程基礎(二)進程關系

轉載 https://www.cnblogs.com/vamei/archive/2012/10/07/2713023.html 作者: Vamei

Linux的進程相互之間有一定的關系货岭。比如說且改,在Linux進程基礎中因苹,我們看到鸵闪,每個進程都有父進程,而所有的進程以init進程為根秒梅,形成一個樹狀結構铐伴。我們在這里講解進程組和會話,以便以更加豐富的方式了管理進程伴奥。

一、進程組 (process group)

每個進程都會屬于一個進程組(process group)翼闽,每個進程組中可以包含多個進程。進程組會有一個進程組領導進程 (process group leader)洲炊,領導進程的PID (PID見Linux進程基礎)成為進程組的ID (process group ID, PGID)感局,以識別進程組尼啡。

 PID  PGID  PPID COMMAND
17763 17763 17751 bash
18534 18534 17763 ps
18535 18534 17763 cat

PID為進程自身的ID,PGID為進程所在的進程組的ID询微, PPID為進程的父進程ID崖瞭。從上面的結果,我們可以推測出如下關系:


進程組關系

圖中箭頭表示父進程通過fork和exec機制產生子進程撑毛。ps和cat都是bash的子進程书聚。進程組的領導進程的PID成為進程組ID。領導進程可以先終結藻雌。此時進程組依然存在雌续,并持有相同的PGID,直到進程組中最后一個進程終結胯杭。

我們將一些進程歸為進程組的一個重要原因是我們可以將信號發(fā)送給一個進程組驯杜。進程組中的所有進程都會收到該信號。我們會在下一部分深入討論這一點做个。

二鸽心、會話 (session)

更進一步,在shell支持工作控制(job control)的前提下居暖,多個進程組還可以構成一個會話 (session)顽频。bash(Bourne-Again shell)支持工作控制,而sh(Bourne shell)并不支持太闺。

會話是由其中的進程建立的糯景,該進程叫做會話的領導進程(session leader)。會話領導進程的PID成為識別會話的SID(session ID)跟束。會話中的每個進程組稱為一個工作(job)莺奸。會話可以有一個進程組成為會話的前臺工作(foreground),而其他的進程組是后臺工作(background)冀宴。每個會話可以連接一個控制終端(control terminal)灭贷。當控制終端有輸入輸出時,都傳遞給該會話的前臺進程組略贮。由終端產生的信號甚疟,比如CTRL+Z, CTRL+\逃延,會傳遞到前臺進程組览妖。

會話的意義在于將多個工作囊括在一個終端,并取其中的一個工作作為前臺揽祥,來直接接收該終端的輸入輸出以及終端信號讽膏。 其他工作在后臺運行。

一個命令可以通過在末尾加上&方式讓它在后臺運行:
ping localhost > log &
此時終端顯示:
[1] 10141
括號中的1表示工作號拄丰,而10141PGID
我們通過如下方式查詢更加詳細的信息:
ps -o pid,pgid,ppid,sid,tty,comm
(tty表示控制終端)
信號可以通過 kill
kill -SIGTERM -10141
或者
kill -SIGTERM %1
的方式來發(fā)送給工作組府树。上面的兩個命令俐末,一個是發(fā)送給PGID(通過在PGID前面加-來表示是一個PGID而不是PID),一個是發(fā)送給工作1(%1)奄侠,兩者等價卓箫。
一個工作可以通過fg從后臺工作變?yōu)榍芭_工作:
cat > log &
fg %1
當我們運行第一個命令后,由于工作在后臺垄潮,我們無法對命令進行輸入烹卒,直到我們將工作帶入前臺,才能向cat命令輸入弯洗。在輸入完成后旅急,按下CTRL+D來通知shell輸入結束。

進程組(工作)的概念較為簡單易懂涂召。而會話主要是針對一個終端建立的坠非。當我們打開多個終端窗口時,實際上就創(chuàng)建了多個終端會話果正。每個會話都會有自己的前臺工作和后臺工作炎码。這樣,我們就為進程增加了管理和運行的層次秋泳。在沒有圖形化界面的時代潦闲,會話允許用戶通過shell進行多層次的進程發(fā)起和管理。比如說迫皱,我可以通過shell發(fā)起多個后臺工作歉闰,而此時標準輸入輸出并不被占據,我依然可以繼續(xù)其它的工作卓起。如今和敬,圖形化界面可以幫助我們解決這一需求,但工作組和會話機制依然在Linux的許多地方應用戏阅。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末昼弟,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子奕筐,更是在濱河造成了極大的恐慌舱痘,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件离赫,死亡現場離奇詭異芭逝,居然都是意外死亡,警方通過查閱死者的電腦和手機渊胸,發(fā)現死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門旬盯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事瓢捉∑登穑” “怎么了?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵泡态,是天一觀的道長。 經常有香客問我迂卢,道長某弦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任而克,我火速辦了婚禮靶壮,結果婚禮上,老公的妹妹穿的比我還像新娘员萍。我一直安慰自己腾降,他們只是感情好,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布碎绎。 她就那樣靜靜地躺著螃壤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筋帖。 梳的紋絲不亂的頭發(fā)上奸晴,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機與錄音日麸,去河邊找鬼寄啼。 笑死,一個胖子當著我的面吹牛代箭,可吹牛的內容都是我干的墩划。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼嗡综,長吁一口氣:“原來是場噩夢啊……” “哼乙帮!你這毒婦竟也來了?” 一聲冷哼從身側響起蛤高,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤蚣旱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后戴陡,有當地人在樹林里發(fā)現了一具尸體塞绿,經...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年恤批,在試婚紗的時候發(fā)現自己被綠了异吻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诀浪,靈堂內的尸體忽然破棺而出棋返,到底是詐尸還是另有隱情,我是刑警寧澤雷猪,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布睛竣,位于F島的核電站,受9級特大地震影響求摇,放射性物質發(fā)生泄漏射沟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一与境、第九天 我趴在偏房一處隱蔽的房頂上張望验夯。 院中可真熱鬧,春花似錦摔刁、人聲如沸挥转。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绑谣。三九已至,卻和暖如春趁俊,著一層夾襖步出監(jiān)牢的瞬間域仇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工寺擂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留暇务,地道東北人。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓怔软,卻偏偏與公主長得像垦细,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子挡逼,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361