• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. Linux進程關(guān)系最新解讀

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

        Linux進程關(guān)系最新解讀2016

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

          進程組 (process group)

          每個進程都會屬于一個進程組(process group),每個進程組中可以包含多個進程。進程組會有一個進程組領(lǐng)導(dǎo)進程 (process group leader),領(lǐng)導(dǎo)進程的PID (PID見Linux進程基礎(chǔ))成為進程組的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。從上面的結(jié)果,我們可以推測出如下關(guān)系:

          圖中箭頭表示父進程通過fork和exec機制產(chǎn)生子進程。ps和cat都是bash的子進程。進程組的領(lǐng)導(dǎo)進程的PID成為進程組ID。領(lǐng)導(dǎo)進程可以先終結(jié)。此時進程組依然存在,并持有相同的PGID,直到進程組中最后一個進程終結(jié)。

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

          會話 (session)

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

          會話是由其中的進程建立的,該進程叫做會話的領(lǐng)導(dǎo)進程(session leader)。會話領(lǐng)導(dǎo)進程的PID成為識別會話的SID(session ID)。會話中的每個進程組稱為一個工作(job)。會話可以有一個進程組成為會話的前臺工作(foreground),而其他的進程組是后臺工作(background)。每個會話可以連接一個控制終端(control terminal)。當(dāng)控制終端有輸入輸出時,都傳遞給該會話的前臺進程組。由終端產(chǎn)生的信號,比如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

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

          一個工作可以通過$fg從后臺工作變?yōu)榍芭_工作:

          $cat > log &

          $fg %1

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

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

          總結(jié)

          process group, pgid

          session, sid, job, forground, background

          fg, kill -pid, &, %

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【Linux進程關(guān)系最新解讀】相關(guān)文章:

        Linux系統(tǒng)守護進程的啟動方法12-15

        關(guān)于linux查看進程ps top區(qū)別03-18

        Linux概念架構(gòu)解讀201603-09

        Linux中的more命令解讀202405-06

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

        解讀客戶關(guān)系管理的重要性06-25

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

        最新留學(xué)就業(yè)數(shù)據(jù)解讀01-22

        新西蘭留學(xué)最新優(yōu)勢解讀02-21

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧洲自拍偷线一区二区 | 亚洲成a×人片在线观看 | 亚洲国产人成在线观看69网站 | 五月天精品一区二区三区 | 亚洲中文字幕综合精品视频 | 天天cao在线视频不卡 |

            Linux進程關(guān)系最新解讀2016

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

              進程組 (process group)

              每個進程都會屬于一個進程組(process group),每個進程組中可以包含多個進程。進程組會有一個進程組領(lǐng)導(dǎo)進程 (process group leader),領(lǐng)導(dǎo)進程的PID (PID見Linux進程基礎(chǔ))成為進程組的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。從上面的結(jié)果,我們可以推測出如下關(guān)系:

              圖中箭頭表示父進程通過fork和exec機制產(chǎn)生子進程。ps和cat都是bash的子進程。進程組的領(lǐng)導(dǎo)進程的PID成為進程組ID。領(lǐng)導(dǎo)進程可以先終結(jié)。此時進程組依然存在,并持有相同的PGID,直到進程組中最后一個進程終結(jié)。

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

              會話 (session)

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

              會話是由其中的進程建立的,該進程叫做會話的領(lǐng)導(dǎo)進程(session leader)。會話領(lǐng)導(dǎo)進程的PID成為識別會話的SID(session ID)。會話中的每個進程組稱為一個工作(job)。會話可以有一個進程組成為會話的前臺工作(foreground),而其他的進程組是后臺工作(background)。每個會話可以連接一個控制終端(control terminal)。當(dāng)控制終端有輸入輸出時,都傳遞給該會話的前臺進程組。由終端產(chǎn)生的信號,比如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

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

              一個工作可以通過$fg從后臺工作變?yōu)榍芭_工作:

              $cat > log &

              $fg %1

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

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

              總結(jié)

              process group, pgid

              session, sid, job, forground, background

              fg, kill -pid, &, %