Linux學習筆記(一)-Linux操作系統啓動流程以及系統關機命令

Linux操作系統啓動流程以及系統關機命令

一. Linux操作系統啓動流程

  1. 系統啓動流程
    這裏寫圖片描述
    2.配置文件/etc/inittab的基本格式
 label:runlevel:action:process
  • Label一般是1-2個字符的標籤,用來標示輸入的值。Red Hat Linux中常用的標籤是:

    id :用來定義缺省的init運行的級別
    si :是系統初始化的進程
    ln: 其中的n從1~6,指明該進程可以使用的runlevel的級別
    ca: 指明當按下Ctrl+Alt+Del時運行的進程
    pf :指“當UPS表明斷電”時運行的進程
    pr :是在系統真正關閉之前,UPS發出電源恢復的信號時需要運行的進程
    x :是將系統轉入X終端時需要運行的進程
  • runlevel:

    ```
    # Default runlevel. The runlevels used by RHS are: 
    #  0 - halt (Do NOT set initdefault to this) 
    #  1 - Single user mode 
    #  2 - Multiuser, without NFS (The same as 3, if you do not havenetworking)
    #  3 - Full multiuser mode 
    #  4 - unused
    #  5 - X11 
    #  6 - reboot (Do NOT set initdefault to this)
    ```
    
  • action字段定義了該進程應該運行在何種狀態下.下面是其常見取值及含義

    ```
    boot :在系統啓動時運行,忽略runlevel
    bootwait :在系統啓動時運行,init等待進程完成。忽略runlevel
    ctrlaltdel :當Ctrl+Alt+Del三個鍵同時按下時運行,把SIGINT信號發送給init
    initdefault :不要執行這個進程,它用於設置默認runlevel
    off: 禁止進入,因此該進程不運行
    once: 運行一次respawn :不管何時終止都重新啓動進程
    sysinit: 在運行boot或bootwait進程之前運行
    Wait:需等待其運行完畢在運行其他項
    
    ```
    
  • process
    • process字段包含init執行的進程,該進程採用的格式與在命令行下運行該進程的格式一樣
    • 因此process字段都以該進程的名字開頭,緊跟着是運行時要傳遞給該進程的參數。比如/sbin/shutdown -t3 -r now,該進程在按下Ctrl+Alt+Del時執行,在命令行下也可以直接輸入來重新啓動系統

3.文件/etc/inittab的一般執行過程
- 例如:在init的配置文件中有這麼一行:
si::sysinit:/etc/rc.d/rc.sysinit
- rc.sysinit是每一個運行級別都要首先運行的重要腳本。它主要是完成一些系統初始化的工作
- 它主要完成的工作有:激活交換分區,檢查磁盤,加載硬件模塊以及其它一些需要優先執行任務
- 當rc.sysinit程序執行完畢後,將返回init繼續下一步
- 啓動對應運行級別的守護進程
- 建立終端

二.系統關機命令

  1. shutdown命令

    • shutdown命令通常必須由超級用戶才能執行
    • shutdown命令執行後,會以廣播的形式通知正在系統中工作的所有用戶,系統將在指定的時間內關閉,請用戶保存文件,停止作業,註銷用戶。此時login指令被凍結,新的用戶不能登錄
    shutdown命令的詳細語法如下:
       shutdown [-fFhknc(參數名稱)] [-t秒數] 時間 [警告信息]
     各參數含義如下:
    
    -f:重啓系統時不執行fsck。
    -F:重啓時執行fsck。
    -h:將系統關閉。相當於halt命令。
    -k:只是送出信息給所有用戶,但不會真正關機。
    -n:  不調用init程序關機,而是由shutdown自己進行(一般關機程序是由shutdown調用init來實現關機動作的),使用此參數將加快關機速度,但是不建議用戶使用此種關機方式。
    -r:shutdown之後重新啓動系統。
    -c:取消一個shutdown命令。
        例如,當執行一個“shutdown -h 15:30”的命令時,只要按“Ctrl+C”組合鍵就可以中斷關機的命令;
        而執行如“shutdown -h 15:30 &”的命令時,就將shutdown轉到後臺運行了,此時就需要用“shutdown -c”將前一個shutdown命令取消。
    
    -t<秒數>:送出警告信息和關機信號之間要延遲多少秒。
       [時間]:設置多久後執行shutdown命令。時間參數有hh:mm或+m兩種模式。比較特別的用法是以now表示立即執行shutdown。
    
    [警告信息]:要傳送給所有登錄用戶的信息。
    
    

    應用舉例

    1)在16:50執行shutdown關機:“shutdown 16:502)重啓系統:#shutdown -r now
    3)立即關機: #shutdown -h now
    4)設定5分鐘後關機,同時發出警告信息給登錄用戶:
      #shutdown +5 "System will shutdown after 5 minutes"
    
  2. halt命令

    • halt是最簡單的關機命令,相當於“shutdown -h”組合。halt’執行時,將殺死所有應用程序,然後調用系統指令sync。sync將所有內存信息通過文件系統寫入硬盤,然後停止內核
         halt指令在執行時,會首先檢測系統的運行級別,如果運行級爲0或6,則立即關閉系統,否則調用shutdown來關閉系統。參數含義如下:
    
    [-f]:不管當前系統處於何種運行級別,不調用shutdown而強制關機。
    [-i]:關機之前,關掉所有的網絡接口。
    [-n]:halt執行時,不調用系統指令sync。
    [-p]:關機時調用poweroff,也就是關機時同時關閉電源。此選項爲缺省選項。
    
  3. reboot命令

    • reboot命令的執行過程與halt基本類似,不同的是halt是用於關機,而reboot是關機後引發系統重啓。
  4. init命令

    • init程序主要用於系統不用運行級之間的切換。
      例如:
      
      #init 0就是將系統運行級切換到0,也就是關機;
      
      
      #init 6命令用於將系統運行級切換到6,也就是重啓系統。
      
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章