1. 程式人生 > >Linux(9)RedHat7 基本命令八-init命令詳解

Linux(9)RedHat7 基本命令八-init命令詳解

導言

很久沒寫linux博文了,最近的一次是第八篇文章,教了shutdown命令,本次教init命令。

init命令是Linux下的程序初始化工具,init程序是所有Linux程序的父程序,它的程序號為1。init命令是Linux作業系統中不可缺少的程式之一,init程序是Linux核心引導執行的,是系統中的第一個程序。

redhat6和redhat7區分

在redhat7中,init的程序換成了systemd,程序號為1。我們可以用pstree去檢視。Redhat7和Redhat6的區別

在redhat6中,使用pstree可以明確的發現初始化程序為1(init):我們可以用pstree去檢視。Redhat7和Redhat6的區別

pstree -p

在這裡插入圖片描述

而在redhat7中,該程序為1的是systemd輸入同樣的命令

pstree -p

在這裡插入圖片描述

執行級別

   說到init,就不得不說說系統的執行級別了。    到底什麼是執行級呢?簡單的說,執行級就是作業系統當前正在執行的功能級別。這個級別從0到6 ,具有不同的功能。你也可以在/etc/inittab中檢視它的英文介紹。

在這裡插入圖片描述

在大多數的linux發行版本中,通常有以下的runlevel:

執行級別 模式說明 簡介
0 系統停機模式 系統預設執行級別不能設定為0,否則不能正常啟動,機器關閉。
1 單使用者模式 root許可權,用於系統維護,禁止遠端登陸,就像Windows下的安全模式登入。
2 多使用者模式 沒有NFS網路支援。
3 完整的多使用者文字模式 有NFS,登陸後進入控制檯命令列模式。
4 系統未使用 保留一般不用,在一些特殊情況下可以用它來做一些事情。例如在膝上型電腦的電池用盡時,可以切換到這個模式來做一些設定。
5 圖形化模式 登陸後進入圖形GUI模式,X Window系統。
6 重啟模式 預設執行級別不能設為6,否則不能正常啟動。執行init 6機器就會重啟。

   多數的桌面的linux系統預設的runlevel是5,使用者登陸時是圖形介面,而多數的伺服器版本的linux系統預設的runlevel是3,使用者登陸時是字元介面,runlevel 1和2除了除錯之外很少使用,runlevel s和S並不是直接給使用者使用,而是用來為Single user mode作準備。

   linux的執行模式比起windows的啟動模式的優勢在於:你可以在系統空閒時使用init命令切換你現在使用的runlevel,另外,當你關閉或者啟動linux系統時你已經不知不覺中切換你的runlevel,系統關機程序需要呼叫runlevel(0或6)來關閉所有正在執行中的程序。

值得注意的是

RHEL7不再使用/etc/inittab檔案進行預設的啟動級別配置 systemd使用比sysvinit的執行級更為自由的target替代。 第3執行級用multi-user.target替代。 第5執行級用graphical.target替代。 runlevel3.target和runlevel5.target分別是 指向 multi-user.target和graphical.target的符號連結。

init命令

作用

切換系統執行級別

用法

init [OPTIONS...]  {COMMAND}

詳細全選項引數解釋

長選項 含義(作用)
--help 展示init命令幫助資訊
--no-wall 在halt/power-off/reboot 之前之前不要傳送留言資訊

命令引數說明

Commands 功能
0 關閉系統(機器)
6 重啟系統(機器)
2,3,4,5 啟動runlevelX.target 單元
1,s,S 進入救援模式( rescue mode)
q,Q 重新載入init守護程序配置
u,U 重新執行init守護程序

預設執行級別相關

   值得注意的是,雖然我們仍然可以使用init 0關閉系統,但在centOS7甚至是Redhat7中,init的命令已經是相容模式的命令,不過切換執行級別的指令換成了使用systemctl,這指令十分的重要,觀看我寫的第一篇linux博文的時候,那部分的時候,其實有用到這個命令,就是使用網路的時候,比如systemctl restart network,這個命令可能以後再繼續講解。

在這裡,我會使用systemctl而不是init命令去實現。

檢視預設執行級別

runlevel
systemctl get-default

這兩個命令都可以檢視預設執行級別,執行結果如下所示:

在這裡插入圖片描述

設定預設第三啟動級別

以下不採取截圖,直接命令及其返回結果,注意需要輸入你的root賬號密碼。

[[email protected] Desktop]$ systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

設定預設第五啟動級別

[[email protected] Desktop]$ systemctl set-default graphical.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

總結

  目前為止,大概是這些需要掌握的init命令及執行級別,如果後期需要補充或者有其他需要了解的,和我說說,我會相對修改。