<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • Linux進程關系最新解讀

    時間:2024-09-09 10:44:16 Linux認證 我要投稿
    • 相關推薦

    Linux進程關系最新解讀2016

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

      進程組 (process group)

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

      $ps -o pid,pgid,ppid,comm | cat

      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,直到進程組中最后一個進程終結。

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

      會話 (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表示工作號,而10141為PGID

      我們通過如下方式查詢更加詳細的信息:

      $ps -o pid,pgid,ppid,sid,tty,comm

      (tty表示控制終端)

      信號可以通過kill

      $kill -SIGTERM -10141

      或者

      $kill -SIGTERM %1

      的方式來發送給工作組。上面的兩個命令,一個是發送給PGID(通過在PGID前面加-來表示是一個PGID而不是PID),一個是發送給工作1(%1),兩者等價。

      一個工作可以通過$fg從后臺工作變為前臺工作:

      $cat > log &

      $fg %1

      當我們運行第一個命令后,由于工作在后臺,我們無法對命令進行輸入,直到我們將工作帶入前臺,才能向cat命令輸入。在輸入完成后,按下CTRL+D來通知shell輸入結束。

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

      總結

      process group, pgid

      session, sid, job, forground, background

      fg, kill -pid, &, %

    【Linux進程關系最新解讀】相關文章:

    Linux系統守護進程的啟動方法12-15

    關于linux查看進程ps top區別03-18

    Linux概念架構解讀201603-09

    Linux中的more命令解讀202405-06

    Linux主機被入侵后的處理案例解讀12-27

    解讀客戶關系管理的重要性06-25

    多進程OSPF及進程號的意義03-30

    最新留學就業數據解讀01-22

    新西蘭留學最新優勢解讀02-21

    主站蜘蛛池模板: 色久综合网精品一区二区| 中文精品无码中文字幕无码专区| 久久久久久国产精品免费免费| 国产精品日本一区二区不卡视频 | 97精品国产高清自在线看超 | 97精品久久天干天天天按摩| 欧美国产成人精品一区二区三区| 欧美精品888| 亚洲国产精品无码久久| 亚洲AV第一页国产精品| 亚洲热线99精品视频| 国产成人精品怡红院在线观看| 国产精品嫩草影院AV| 亚洲国产精品一区二区成人片国内| 91精品国产综合久久香蕉| 国产精品久久久久影院色| 无码国产精品一区二区免费vr | 自拍偷自拍亚洲精品被多人伦好爽| 国产成人精品一区在线 | 国产精品视频白浆免费视频| 亚洲国产成人久久精品99| 久久精品中文字幕一区| 国产精品美女WWW爽爽爽视频| 2021国产成人精品久久| 华人亚洲欧美精品国产| 人妻一区二区三区无码精品一区| 国产精品无码成人午夜电影| 精品久久人妻av中文字幕| 久久精品中文騷妇女内射| 人人妻人人澡人人爽人人精品97| 亚洲精品午夜国产VA久久成人| 合区精品中文字幕| 亚洲精品无码AV中文字幕电影网站| 在线观看自拍少妇精品| 亚洲精品无码久久久久| 久久久一本精品99久久精品66| 久久精品亚洲日本波多野结衣| 国内精品久久久久影院日本| 999精品视频| 亚洲国产精品一区二区久久| 亚洲综合精品一二三区在线|