2016年9月16日 星期五

sysV vs systemd

開機過程
Runlevel(sysV):  開機時選擇runlevel(在inittab設定). 不同的runlevel會執行不同的rc.d裏的service的link. 實際的啟動script在init.d裡面

Systemd:  一堆 unit 項目集合變成一個 group 稱為 target. target 可想成是runlevel.disabled的service 在/usr/lib/systemd/system/裡,enabled的service link 到 /etc/systemd/system 

管理
sysV: init, chkconfig, service.........
systemd: systemctl(stand for: system ConTorL)

其他比較由於 systemd 可以自訂服務相依性的檢查,因此如果 B 服務是架構在 A 服務上面啟動的,那當你在沒有啟動 A 服務的情況下僅手動啟動 B 服務時, systemd 會自動幫你啟動 A 服務。

常用指令
(systemctl 命令 服務.service)
命令: enable(開機自動執行),disable,status,start,restart,stop
ex: systemctl status httpd.service

列出有哪些 target(runlevel): systemctl list-units --type target
列出系統target(runlevel): systemctl get-default 
切換 current target: systemctl isolate multi-user.target (runlevel 3) 
切換 current target: systemctl isolate graphical.target (runlevel 5) 
切換開機target: systemctl set-default multi-user.target (runlevel 3) 
切換開機target: systemctl set-default graphical.target (runlevel 5)