Centos7.0服務控制及優化啟動過程
1.系統服務控制
在CentOS7.0系統中,各種系統服務的控制指令碼預設放在/usr/lib/systemd目錄下。通過systemctl命令工具可以實現對指定系統服務的控制,語法格式如下:
systemctl 控制型別 服務名稱 |
對於大多數系統服務來說,常見的幾種控制型別如下所述。
- start (啟動):啟用指定的系統服務程式
- stop (停止):終止指定的系統服務程式
- restart (重啟):先關閉服務,再啟動指定的系統服務程式
- reload (過載):不關閉服務,只是重新整理配置
- status (檢視狀態):檢視指定的系統服務的執行狀態
例子:停止postfix服務,並檢視當前狀態,如下:
2.切換執行級別
早期Linux作業系統中的SysVinit機制,預設包括七種不同的服務搭配方式,其中每一種搭配方式稱為執行級別,類似於Windows系統中的正常啟動、安全模式、不帶網路連線的安全模式等。這些執行級別分別使用數字0,1,…,6來表示。為了向下相容SysVinit系統,Systemd使用了相應的target(目標)模擬了SysVinit的執行級別,下表列出了執行級別所對應的target及作用
SysVinit的執行級別 |
Systemd目標名稱
|
作用 |
0 |
runlevel0.target, poweroff.target |
關機 |
1 |
runlevel1.target, rescue.target |
單使用者模式 |
2 |
runlevel2.target, multi-user.target |
等同於級別3 |
3 |
runlevel3.target, multi-user.target |
多使用者的文字介面 |
4 |
runlevel4.target, multi-user.target |
等同於級別3 |
5 |
runlevel5.target, graphical.target |
多使用者的圖形介面 |
6 |
runlevel6.target, reboot.target |
重啟 |
emergency |
emergency.target |
緊急Shell |
(1)檢視系統的target
檢視當前系統的執行級別,可使用runlevel命令和systemctl get-default命令,如下:
(2)切換系統的target
例如,圖形化模式(5)和字元模式(3)之間的切換可執行“init 3”,“init 5”或“systemctl isolate multi-user target”,“systemctl isolate graphical.target”
使用“init 3”或“systemctl isolate multi-user target”
使用“init 5”或“systemctl isolate graphical.target”
使用“init 0”關閉當前系統,“init 6”重啟當前系統
使用“systemctl poweroff”關閉當前系統,“systemctl reboot”重啟當前系統
設定預設執行級別,如將字元模式設定為預設的執行級別的操作如下:
說明:修改完後,在下次啟動系統的時候會預設進入字元模式
3.優化啟動過程
優化開機自動載入的服務
(1)使用ntsysv工具
說明:單獨執行“ntsysv”命令時僅用於管理當前執行目標中的服務;通過“--level”選項可以對指定執行的目標(級別)中的服務進行管理,例如“ntsysv –level 35”,指同時對執行目標3、5中的系統服務的預設啟動狀態進行調整。
(2)使用systemctl工具
常用選項:
enable: 開機自啟動
disable:開機自動關閉
is-enable:檢視開機啟動狀態
例如:
檢視當前系統中已啟用的系統服務,可使用“systemctl list-units –type=service”命令