1. 程式人生 > >Linux學習之CentOS(四)--Linux系統的啟動級別

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系統更多的東西!!!