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作準備。
值得注意的是
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命令及執行級別,如果後期需要補充或者有其他需要了解的,和我說說,我會相對修改。