systemd是Linux下的一種init軟件,由Lennart Poettering(英語:Lennart Poettering)帶頭開發並在LGPL 2.1及後續版本許可證下開源發布。其開發目標是提供更優秀的框架以表示系統服務(英語:Service (systems architecture))間的依賴關系,並以此實現系統初始化時服務的並行啟動,同時達到降低Shell的系統開銷(英 語:Computational overhead)的效果,最終代替現在常用的System V與BSD風格init程序。systemd 是 Linux 下一個與 SysV 和 LSB 初始化腳本兼容的系統和服務管理器。systemd 使用 socket 和 D-Bus 來開啟服務,提供基於守護進程的按需啟動策略,保留了 Linux cgroups 的進程追蹤功能,支持快照和系統狀態恢復,維護掛載和自掛載點,實現了各服務間基於從屬關系的一個更為精細的邏輯控制,擁有前衛的並行性能。 systemd 無需經過任何修改便可以替代 sysvinit 。systemd已納入眾多Linux發行版的軟件源中,Fedora 15及後續版本都采用的systemd作為Linux下的默認init程序。(在 Fedora 14 的特性中,systemd 是作為一個技術預覽。在 Fedora 15 中替代 Upstart 作為默認管理器,具體可參見fedora官方文檔說明點擊打開鏈接 )
SysVinit守護進程(sysvinit軟件包)是一個基於運行級別的系統,它使用運行級別(單用戶、多用 戶以及其他更多級別)和鏈接(位於/etc /rc?.d目錄中,分別鏈接到/etc/init.d中的init腳本)來啟動和關閉系統服務。Upstart init守護進程(upstart軟件包)則是基於事件的系統,它使用事件來啟動和關閉系統服務。
以下是兩種服務管理的卻別和對應的命令.
<表參考自http://www.talaland.com/systemd-service-configuration/>
RHEL6 使用新的Upstart啟動服務替換先前的System V init,Upstart是事件驅動型的,因此,它只包含按需啟動的腳本,這將使啟動過程變得更加迅速。經過良好調優並使用Upstart啟動方式的 Linux服務器的啟動速度要明顯快於原有的使用System V init的系統。 RHEL 6對啟動過程的改變相對較少,兼容SysV,所以依然可以處理那些在目錄/etc/init.d中包含服務腳本的服務,runlevel的概念也是存在於 RHEL6中的<fedora因為使用的是systemd,所以基本上runlevel的概念也就不存在了。
RHEL6下的相關改變:
/etc/inittab 只用來配置系統默認運行級別,所有先前由/etc/inittab來設定的條目,現在都在/etc/init/目錄中以單個文件的形式存在。
/etc/init/rcS.conf 通過啟動大部分的基本服務來對系統進行初始化的設定
/etc/init/rc.conf 對啟動各自的運行級別(runlevel)的設定
/etc/init/control-alt-delete.conf 定義當用戶按“control-alt-delete”三個鍵時的系統行為
/etc/init/tty.conf、/etc/init/serial.conf 定義系統處理終端登錄
/etc/sysconfig/init 中ACTIVE_CONSOLES決定了虛擬控制台的創建,AUTOSWAP是否自動檢測交換分區,單用戶模式下的root使用的SHELL,默認為 /sbin/sushell,另外/sbin/sulogin會在單用戶模式啟動之前彈出登錄提示。