Linux學習之CentOS(四)--Linux系統的啟動級別
對於絕大多數Linux程式設計師來說,進入Linux系統後一般看到的是黑乎乎的介面(開發模式),因為系統如果啟動選擇開發模式,會減少啟動時間,優化記憶體等。但是通常我們剛安裝完Linux系統,然後進去以後是圖形的介面,(如果要切換到開發模式,使用快捷鍵Ctrl + F2即可),從開發模式返回到圖形介面則使用快捷鍵(Ctrl + F1),或者在命令列裡輸入命令 startx 命令就可以切換到圖形介面。
注意:如果你是開機啟動模式設定的是圖形介面啟動,則通過快捷鍵( Ctrl + Alt + F2~F7 )進入到終端介面後, 你輸入命令 startx 是返回不了圖形介面的。但是如果你開機啟動模式設定的是開發模式,則輸入命令 statx 就可以返回到圖形介面
一、centos6上系統級別
1、檢視使用者當前的系統啟動級別的命令是:runlevel 或 who -r 。
[[email protected] ~]# runlevel
N 5
[[email protected] ~]# init 3
[[email protected] ~]# runlevel
5 3
[[email protected] ~]# who -r
run-level 5 2018-10-14 17:30
runlevel命令是查詢使用者的啟動級別的命令,出現了兩個值:第一個值指的是當前啟動級別上一次的啟動級別,如果沒有,就顯示N(NO);第二個值顯示的是當前的啟動級別。
init命令用來臨時設定使用者啟動的級別,後面跟使用者的啟動級別對應的值。因為沒有寫入配置檔案,所以下一次重啟後該值失效!
who -r用來顯示使用者的啟動級別以及登入時間。
2、Linux系統設定系統啟動模式的方式可以修改(必須要以root身份登入才能修改)。centos6修改系統啟動模式的配置檔案是 /etc/inittab。
我們在切換到root使用者後,然後 vim /etc/inittab, 就可以修改並檢視該配置檔案:
[[email protected] ~]:# vim /etc/inittab
在輸入上面的命令後,我們可以看到該配置檔案裡面的資訊如下:
# inittab is only used by upstart for the default runlevel. # # ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM. # # System initialization is started by /etc/init/rcS.conf # # Individual runlevels are started by /etc/init/rc.conf # # Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf # # Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf, # with configuration in /etc/sysconfig/init. # # For information on how to write upstart event handlers, or how # upstart works, see init(5), init(8), and initctl(8). # # Default runlevel. The runlevels used 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 have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: ~
我們之間看到最後那幾行,就可以看到Linux系統中預設的系統啟動基本一共有7種,分別是:
0:關機(不要設定這個!) 1:單使用者(類似於windows作業系統的安全模式) 2:多使用者狀態沒有網路服務 3:多使用者狀態由網路服務(在做開發時,通常設定成這個啟動級別,直接進入到命令列的介面) 4:系統未使用保留給使用者(不要設定這個!) 5:圖形介面(這是linux預設的啟動級別,直接進入圖形介面) 6:系統重啟(不要設定這個!)
下面那句:
id:5:initdefault: // 設定系統預設的啟動級別
就是用來設定系統的預設啟動級別,Linux系統中預設是啟動級別5,也就是圖形介面啟動
如果需要修改成預設級別為開發模式,只需要將 5 改成 3 即可
如:
將 id:5:initdefault: 改成 id:3:initdefault:
然後儲存退出,重新啟動一下系統 輸入 reboot 命令即可。
警告:千萬不要將啟動基本設定為0, 4, 6!!!!!!
這時就會發現進入Linux系統的介面已經變成開發者模式了!
如果我們只是需要在Linux上做開發、部署專案的話,建議一般將系統啟動模式設定為 開發模式!
【注】
如果有惡意使用者將系統啟動級別設定成0、4、6,我們該怎麼解決這個問題?
在linux系統啟動介面,我們快速按鍵盤上的 【e】 按鈕,然後進入到了grub引導介面(這個根據Linux的版本可能有不同,我的CentOS6.4是需要在啟動時按F2進入引導介面,
這個可以根據自己安裝的Linux系統在開機時的提示進入引導介面),
在這個介面中選擇第二個選項,然後再按下鍵盤上的 【e】按鈕,在進入修改介面後,在最後輸入【 1】(1前面有空格)
這樣,linux系統在啟動時就會以 單使用者級別 啟動起來(為什麼這裡不將其設定成3或者5,是因為linux系統
在啟動時首先會去檢查 /etc/inittab 檔案的設定啟動級別,如果在這時設定成5或者3,系統還是進不去,只能設定成1)
在設定好以後,按下鍵盤的【b】按鈕,系統就能重新啟動,並進入 單使用者級別,這樣我們就可以按照之前的方法修改
linux系統的啟動級別。
二、centos7上使用者級別的檢視與修改
7個啟動級別
Linux分為7個啟動級別:
- 0 - 系統停機狀態
- 1 - 單使用者工作狀態
- 2 - 多使用者狀態(沒有NFS)
- 3 - 多使用者狀態(有NFS)
- 4 - 系統未使用,留給使用者
- 5 - 圖形介面
- 6 - 系統正常關閉並重新啟動
現在很多Linux系統都預設啟動等級為5。如果我們想切換系統等級,可使用init命令
init 3
- 1
這樣就可以切換到多使用者狀態且帶有網路檔案系統了。這種方式對於CentOS7也適用。
centos 7 修改預設啟動級別
修改預設啟動級別,CentOS7同其他Linux稍顯不同
對於傳統的設定方法,只要修改/etc/inittab檔案即可,將預設的啟動級別改為需要改動的級別
開啟CentOS7的/etc/inittab,發現該檔案與其他Linux不同
# inittab is no longer used when using systemd.
#
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# Ctrl-Alt-Delete is handled by /usr/lib/systemd/system/ctrl-alt-del.target
#
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runlevel 5
#
# To view current default target, run:
# systemctl get-default
#
# To set a default target, run:
# systemctl set-default TARGET.target
按照該檔案所說的,runlevels被targets所取代,即CentOS7採用載入target的方式來替代之前的啟動級別。其中有兩個重要的target:multi-user.target與graphical.target。它們分別表示執行級別中的3與5級別
通過systemctl get-default
可獲得預設啟動的target
通過systemctl set-default
設定預設啟動的target
那麼,想修改為多使用者狀態只需執行:
systemctl set-default multi-user.target
修改為圖形介面執行
systemctl set-default graphical.target
這篇隨筆主要是記錄怎麼設定Linux系統的啟動級別,後面將會陸續學習Linux系統更多的東西!!!