【轉】inittab檔案

來源:互聯網
上載者:User

標籤:

原文網址:http://blog.csdn.net/shuaishuai80/article/details/6202482

一、inittab檔案背景
(1)
init進程的作用
   使用uboot下載Linux核心時,環境變數bootargs決定了kernel向根檔案系統傳遞的參數,這些參數包括
      bootargs=noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0
    <1>root:指定了根檔案系統在Flash分區中的位置
    <2>console:指定了核心啟動後首選的控制台.
    <3>init:指定了Linux核心啟動完畢後調用的第一個、也是唯一的一個使用者態進程,即進程號為1的進程.其中,參數"init=linuxrc"非常重要.由於init進程是kernel啟動後的第一個、也是唯一的一個使用者態進程,使用者的許多應用程式,比如Mplayer、Qt、Boa都由該進程來啟動,換句話說,init進程是所有進程的發起者.
(2)linuxrc檔案的作用
    <1>在嵌入式Linux中,init進程的執行程式通常是二選其一.這兩個執行程式分別是/sbin/init程式,或者是Busybox產生的linuxrc程式.init進程的作用即這個程式的功能.init進程具體運行哪個程式,則由uboot的環境變數bootargs決定,即init=/linuxrc.通常採用命令列參數"init=xxxx"指定某個程式作為init進程運行.比如,init=linuxrc.可以說,linuxrc程式的作用就是init進程的作用.
    <2>linuxrc是一個程式,它的執行流程如下所示.其中,如何解析inittab檔案可以由使用者設定,其它兩個一般都不會修改.
       1、設定訊號處理函數.
       2、初始化控制台.
       3、解析inittab檔案.
(3)/etc/inittab檔案的作用
   從上可知,init進程,或者說linuxrc程式最後會解析inittab檔案.inittab,可以理解為init table(初始化表),它只是一個普通檔案,但系統會根據/etc/inittab的內容啟動相關進程或指令碼.  二、inittab檔案格式
(1)如果存在/etc/inittab檔案,Busybox init程式解析它,然後按照它的指示建立各種子進程,否則使用預設的配置建立子進程.
(2)/etc/inittab檔案中每個條目用來定義一個子進程,並確定它的啟動方法,格式如下
          <id> : <runlevels> : <action> : <process>
    <1>id :表示這個子進程要使用的控制台,如果省略,則使用與init進程一樣的控制台.
    <2>runlevels:這個欄位沒有意義,可以省略。在linux有意義.
    <3>action:表示init進程如何控制這個子進程,具體取值見下表.
    <4>process:要執行的程式,它可以是可執行程式,也可以是指令碼.如果process欄位前有“-”字元,這個程式被稱為“互動的”.
  【 attention】action取值
      名稱             執行條件                                           說明
     sysinit        系統啟動後最先執行         指定初始化指令碼路徑,只執行一次,init進程等待它結束才繼續執行其它動作
     wait           系統執行完sysinit進程後   只執行一次,init進程等待它結束才繼續執行其它動作
     once           系統執行完wait進程後     只執行一次,init進程不等待它結束
     respawn     啟動完once進程後           init進程監測發現子進程退出時,重新啟動它,永不結束.如Shell命令直譯器
     askfirst       啟動完respawn進程後     與respawn類似,不過init進程先輸出“Please press Enter toactivate this console”,等使用者輸入斷行符號後才啟動子進程
     shutdown    當系統關機時                  即重啟、關閉系統時執行的程式
     restart        系統重啟時                     init進程重啟時執行的程式,通常是init程式本身先重新讀取、解析/etc/inittab檔案,再執行restart程式
  ctrl+alt+del  按下Ctrl+Alt+Del鍵時   按Ctrl+Alt+Del按鍵組合時執行的程式
(3)inittab檔案常式
   <1>::sysinit:/etc/init.d/rcS
      1.該條目的id省略,表示使用與init進程一樣的控制台.
      2.該條目的runlevels在嵌入式Linux中都會省略.
      3.該條目的action是sysinit,表示系統啟動後最先執行.
      4.該條目的process是/etc/init.d/rcS,表示系統啟動後最先執行指令碼/etc/init.d/rcS.
   <2>::respawn:-/bin/login
      1.該條目的id省略,表示使用與init進程一樣的控制台.
      2.該條目的runlevels在嵌入式Linux中都會省略.
      3.該條目的action是respawn,表示init進程監測發現子進程退出時,重新啟動它,永不結束.
      4.該條目的process是/bin/login,表示init進程監測發現/bin/login子進程退出時,重新啟動它,永不結束. 

【轉】inittab檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.