於Linux作業系統根檔案系統的啟動分析

來源:互聯網
上載者:User
一般的系統是先啟動/sbin/init,但是也可通過啟動參數指定init=來確定,如:我的系統就是制定的init=/linuxrc,因為檔案系統是採用busybox的,而linuxrc.也是一個指向busybox的檔案,不過不確認它指向具體哪個指令。不過可能是/sbin/init.

    init進程的主要任務是按照inittab檔案所提供的資訊建立進程,由於進行系統初始化的那些進程都由init建立,所以init進程也稱為系統初始化進程。

    如我的inittab:

    ::sysinit:/etc/init.d/rcS

    ::respawn:-/bin/login

    ::restart:/sbin/init

    ::ctrlaltdel:/bin/reboot

    ::shutdown:/bin/umount -a -r

    ::shutdown:/sbin/swapoff -a

    inittab的格式如下:

    id:rstate:action:process

    1.id欄位是最多4個字元的字串,用來唯一標誌表項。

    2.rstate(run state)欄位定義該記錄項被調用時的運行層級,rstate可以由一個或多個運行層級構成,也可以是空,空則代表運行層級0~6.當請求init改變運行層級時,那些rstate欄位中不包括新運行層級的進程將收到SIGTERM警告訊號,並且最後被殺死;只有a、b、c啟動的命令外(a、b、c不是真正的運行層級)

    3.action欄位定義了該進程應該運行在何種狀態下:

    boot 在系統啟動時運行,忽略runlevel

    bootwait 在系統啟動時運行,init等待進程完成。忽略runlevel

    ctrlaltdel 當Ctrl+Alt+Del三個鍵同步選取時運行,把SIGINT訊號發送給init.忽略 runlevel

    initdefault 不要執行這個進程,它用於設定預設runlevel

    kbrequest 當init從鍵盤中收到訊號時運行。這裡要求鍵盤組合符合KeyBoardSigral(參見/usr/share/doc/kbd-*關於鍵盤組合的文檔)

    off 禁止進入,因此該進程不運行

    once 每一個runlevel層級運行一次

    ondemand 當系統指定特定的運行層級A、B、C時運行

    powerfail 當init收到SIGPWR訊號時運行

    powerokwait 當收到SIGPWD訊號且/etc/檔案中的電源狀態包含OK時運行

    powerwait 當收到SIGPWD訊號,並且init等待進程結束時運行

    respawn 不管何時終止都重新啟動進程

    sysinit 在運行boot或bootwait進程之前運行

    wait 運行進程等待輸入運行模式

    process 欄位包含init執行的進程,該進程採用的格式與在命令列下運行該進程的格式一樣,

    因此process欄位都以該進程的名字開頭,緊跟著是運行時,緊跟著是運行時要傳遞給該進程的參數。

    比如/sbin/shutdown -t3 -r now,該進程在按下Ctrl+Alt+Del時執行,在命令列下也可以直接輸入來重新啟動系統。

    4.Process欄位中進程可以是任意的守候進程、可執行指令碼或程式。

    另外:在任何時候,可以在檔案inittab中添加新的記錄項,層級Q/q不改變當前的運行層級,重新檢查inittab檔案,可以通過命令init Q或init q使init進程立即重新讀取並處理檔案inittab.

    他會先執行/etc/init.d/rcS

    #! /bin/sh

    /bin/mount -a

    mdev -s

    而mount -a會執行/etc/fstab

    proc /proc proc defaults 0 0

    none /tmp ramfs defaults 0 0

    mdev /dev ramfs defaults 0 0

    sysfs /sys sysfs defaults 0 0

    掛載一些ramfs.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.