systemd 與 sysVinit 彩版對照表

systemd 是一種新型init系統「譯者注:每一個操做系統都有一個啓動程序,而Linux init是Linux系統操做中不可缺乏的程序之一。所謂的init進程,它是一個由內核啓動的用戶級進程。內核自行啓動(已經被載入內存,開始運行,並已初始化全部的設備驅動程序和數據結構等)以後,就經過啓動一個用戶級程序init的方式,完成引導進程。因此init始終是第一個進程(其進程編號始終爲1)」,最先在Fedora中使用「譯者注:據維基百科資料:http://en.wikipedia.org/wiki/Systemd#Adoption,最先使用 systemd 的是gentoo,最先使用併成爲默認 init system 的是openSUSE。」,通過調整適應了其它許多發行版,例如RedHat、Suse和CentOS。html

歷史上,咱們大部分人用過傳統的SysV init 初始化腳本,它一般狀況下在/etc/rc.d/init.d/文件夾下。這些腳本調用守護進程二進制代碼,在後臺fork一個進程。linux

儘管shell腳本很是的靈活,可是很難實現像superviseing(監管)進程和並行執行命令這樣的任務。git

經過對systemd的新式守護進程的介紹,咱們發現systemd能夠在runtime(運行時)更加簡單的監管和控制守護進程,而且簡化了監控的實現方式(implementation)。github

systemctl命令是systemd團隊一個很是好的獨創。shell

這個命令可以顯示更多的詳細錯誤信息和包括啓動錯誤在內的服務運行時錯誤。systemd引入了一個新術語:cgroups(控制組),它基本上是可被分層次安排的進程任務組。「譯者注:這裏簡單介紹一下cgroup(control group)稱爲Containers,Containers着眼於資源的分配,利用configfs做配置。它有兩個重要概念:第一是subsystem,內核能夠給進程提供的服務/資源;第二是container,一個進程組,成員共享一樣的一個或多個子系統分配限制。Containers是分層次的,一個container能夠hold多個container。它的可取之處是建立了一個資源分配的框架,其它開發者能夠利用這個框架去開發本身的資源分配patch,好比磁盤設備。」centos

若是僅僅經過原來的初始化系統,決定哪一個進程是作什麼的、屬於哪一個用戶的變得愈來愈困難。數據結構

可是經過systemd,當一個進程派生其它進程時,這些子進程會被自動變成父進程控制組的成員,這樣一來就能夠避免繼承的混亂。框架

有許多新的運行在 rhel / centos 7.0 上的 systemd 命令能夠替代 sysvinit 的對應命令。你也能夠下載 本文的 PDF 版本ide


via: http://linoxide.com/linux-command/systemd-vs-sysvinit-cheatsheet/spa

做者:Bobbin Zachariah 譯者:szrlee 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章
相關標籤/搜索