1. 程式人生 > >centos 7.4 runlevel 執行級別

centos 7.4 runlevel 執行級別

centos 7.4 runlevel 執行級別
https://www.cnblogs.com/yingsong/p/6012180.html

runlevel可以認為是系統狀態,形象一點,您可以認為runlevel有點象微軟的windows作業系統中的Normal,safemode,和Command prompt only。

#檢視執行級別:
runlevel    #第一種方法
N 3
systemctl get-default     #第二種方法
multi-user.target

who -r    #第三種方法
         run-level 5  2019-01-07 13:34


#切換到 runlevel 5
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.

systemctl set-default multi-user.target    #切換到 3

init 3    #臨時切換到字元介面


Linux系統有7個執行級別(runlevel)
執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動
執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸
執行級別2:多使用者狀態(沒有NFS)
執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式
執行級別4:系統未使用,保留
執行級別5:X11控制檯,登陸後進入圖形GUI模式
執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動
S, s  Single user mode


執行級別的原理:
1。在目錄/etc/rc.d/init.d下有許多伺服器指令碼程式,一般稱為服務(service)
2。在/etc/rc.d下有7個名為rcN.d的目錄,對應系統的7個執行級別
3。rcN.d目錄下都是一些符號連結檔案,這些連結檔案都指向init.d目錄下的service指令碼檔案,命名規則為K+nn+服務名或S+nn+服務名,其中nn為兩位數字。
4。系統會根據指定的執行級別進入對應的rcN.d目錄,並按照檔名順序檢索目錄下的連結檔案
     對於以K開頭的檔案,系統將終止對應的服務
     對於以S開頭的檔案,系統將啟動對應的服務
5。檢視執行級別用:runlevel
6。進入其它執行級別用:init N
7。另外init0為關機,init 6為重啟系統

 

在執行模式中加入啟動服務

要在某個執行模式中加入一個啟動服務,首先要新建該服務啟動指令碼,然後把它放置於/etc/rc.d/init.d或者/etc/init.d/(根據你的linux版本有所不同),要將該啟動指令碼與執行模式關聯起來,你需要這個執行模式的目錄下建立一個與/etc/rc.d/init.d/下啟動指令碼的symbolic link,檔名的字首通常為SXX,XX為數字,這個數字是用來控制該執行模式下服務的啟動順序。指令碼的執行順序是按照數字大小升序執行,就是數字越小越先執行,下面就是一個在執行模式中加入啟動服務具體的例子:
$ cp myservice /etc/rc.d/init.d/
$ ln -s /etc/rc.d/init.d/myservice /etc/rc3.d/S99myservice
這樣,下次以runlevel 3啟動時,myservice就會自動啟動。

 

注意:

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