linux系統啟動過程 指令碼啟動順序

2021-06-16 05:35:49 字數 2626 閱讀 3372

1.系統啟動流程

linux系統主要通過以下步驟啟動:

1、讀取mbr的資訊,啟動boot manager

windows使用ntldr作為boot manager,如果您的系統中安裝多個版本的windows,您就需要在ntldr中選擇您要進入的系統。

linux通常使用功能強大,配置靈活的grub或者lilo作為boot manager

2、載入系統核心,啟動init程序

init程序是linux的根程序,所有的系統程序都是它的子程序。

3、init程序讀取「/etc/inittab」檔案中的資訊,並進入預設的執行級別,按順序執行該執行級別對應資料夾下的指令碼。指令碼通常以「start」引數啟動,並指向乙個系統中的程式。

通常情況下,「/etc/rcs.d/」目錄下的啟動指令碼首先被執行,然後是「/etc/rcn.d/」目錄。例如您設定的執行級別為3,那麼它對應的啟動目錄為「/etc/rc3.d/」,最後啟動的指令碼是/etc/rc.local目錄

4、啟動登入管理器,等待使用者登入

ubuntu系統預設使用gdm作為登入管理器,kde則是kdm,您在登入管理器介面中輸入使用者名稱和密碼後,便可以登入系統。(您可以在「/etc/rc3.d/」資料夾中找到乙個名為「s13gdm」的鏈結)

5.在使用者登入的時候執行sh指令碼的順序:每次登入的時候都會完全執行的

/etc/profile.d/file

/etc/profile

/etc/bashrc

/root/.bashrc

/root/.bash_profile

2.更改執行級別*

在「/etc/inittab」檔案中找到如下內容:

# the default runlevel.

id:2:initdefault:

這一行中的數字2,為系統的執行級別,預設的執行級別涵義如下:

0 關機

1 單使用者維護模式

2~5 多使用者模式

6 重啟

3.服務管理

更改啟動服務

在執行級別對應的資料夾中,您可以看到許多檔名以「s##」和「k##」起始的啟動指令碼鏈結。

例如:/etc/rcs.d/s35mountall.sh 掛載檔案系統

/etc/rcs.d/s40networking 啟用網路支援

/etc/rc2.d/s13gdm 啟動登入管理器

/etc/rc2.d/s20makedev 建立裝置檔案

/etc/rc2.d/s23xinetd 啟動超級程序

init 程序將以「start」為引數,按檔名順序執行所有以「s##」起始的指令碼。指令碼名稱中的數字越小,它將被越早執行。例如在「/etc/rc2.d/」 資料夾中,「s13gdm」檔名中的數字小於「s23xinetd」,「s13gdm」將比「s23xinetd」先執行。

如果乙個指令碼鏈結,以「k##」起始,表示它將以「stop」引數被執行。如果相應服務沒有啟動,則不執行該指令碼。

例如:/etc/rc2.d/k20powernowd 針對某種硬體的電源管理支援

如果您想禁止某一服務在啟動時自動執行,您可以將相應執行級別中的指令碼由「s##***」重新命名為「k##***」。

手動控**務

您也可以手動執行帶有以下引數的啟動指令碼,來控制系統服務。

start 啟動

stop 停止

restart 重啟

例如:/etc/rc2.d/k20powernowd start

有時您並不清楚當前執行級別,該執行級別下未必有相應指令碼;而且此類指令碼的前三位字元並不固定,不便於記憶。這時,您可以直接使用「/etc/init.d /」資料夾中的啟動指令碼(「/etc/rcx.d/」中的啟動指令碼鏈結到「/etc/init.d/」資料夾下相應指令碼),這也是我們向您推薦的方式。

例如:/etc/init.d/powernowd start

tips:以上命令的位置並沒有包含在環境變數的搜尋路徑中,所以要輸入完整路徑。

ubuntu10.10 裡面的環境配置檔案

(1)/etc/enviroment 是系統的環境變數。

(2)/etc/profile: 是所有使用者的環境變數。當使用者第一次登入時,該檔案被執行. 並從/etc/profile.d目錄的配置檔案中蒐集shell的設定。

(3)/etc/bashrc: 為每乙個執行bash shell的使用者執行此檔案.當bash shell被開啟時,該檔案被讀取。

(4)~/.bash_profile: 每個使用者都可使用該檔案輸入專用於自己使用的shell資訊,當使用者登入時,該檔案僅僅執行一次!預設情況下,他設定一些環境變數,執行使用者的.bashrc檔案。

(5)~/.bashrc: 該檔案包含專用於你的bash shell的bash資訊,當登入時以及每次開啟新的shell時,該該檔案被讀取。

(6) ~/.bash_logout:當每次退出系統(退出bash shell)時,執行該檔案. 另外,/etc/profile中設定的變數(全域性)的可以作用於任何使用者,而~/.bashrc等中設定的變數(區域性)只能繼承 /etc/profile中的變數,他們是"父子"關係。

(7)~/.bash_profile 是互動式、login 方式進入 bash 執行的~/.bashrc 是互動式 non-login 方式進入 bash 執行的通常二者設定大致相同,所以通常前者會呼叫後者。

rhel系統啟動過程 Linux 系統啟動過程

按下系統的電源開關,過一會就可以看到linux的登入介面了。你是否曾經想過,從按下電源開關到登入介面出現,這後面到底發生了什麼?linux 系統在啟動過程中,首先是韌體 pc 上大多是 cmos bios 的物理檢測,諸如檢測系統的顯示卡 cpu 和硬碟等,可從系統按下電源後看到此檢測資訊 檢測無問...

rhel系統啟動過程 Linux系統啟動過程簡介

1 bios加電自檢 計算機啟動後,首先會進行韌體bios的自檢,即所謂的post,然後把保持在mbr主引導記錄中的主引導引導程式到記憶體中 2 載入主引導引導程式 mbr 主引導引導程式通過分割槽表查詢活動分割槽,然後將活動分割槽的次引導引導程式從裝置讀入記憶體並執行 3 載入次引導引導程式 gr...

rhel系統啟動過程 Linux 系統啟動過程

linux系統啟動過程 linux啟動時我們會看到許多啟動資訊。核心的引導。執行 init。系統初始化。建立終端 使用者登入系統。init程式的型別 sysv init,centos 5之前,配置檔案 etc inittab。upstart init,centos 6,配置檔案 etc initta...