空橋云代維 2015-07-30 11:19:19 隨著公司業(yè)務(wù)的不斷發(fā)展,各種學(xué)習(xí)機會也在不斷增多。今天學(xué)習(xí)了Redhat7企業(yè)版,整理作成Systemd相關(guān)文章與大家共享。 何為SystemdSystemd是linux下,進(jìn)行啟動處理,系統(tǒng)管理的一種init軟件。Linux的啟動處理Linux的啟動大致分為以下4個階段進(jìn)行。
該init程序負(fù)責(zé)管理linux啟動,之前使用的是Sysvinit,但近幾年被以Ubuntu等采用的Upstart所取代。而且Fedora 15,CentOS 7,Red Hat Enterprise Linux 7采用的都是Systemd。 Systemd特征1.不是一個shell腳本。Sysvinit的處理全部被寫成shell腳本。因為與服務(wù)相關(guān)的動作被寫在單一的腳本中進(jìn)行處理,而不能進(jìn)行細(xì)化。 Systemd的話,服務(wù)不是寫成一個的腳本,而是作為配置文件,以Unit為單位進(jìn)行管理。因此各項處理可進(jìn)行細(xì)化,和單獨有效地運行。而且還可以明確各個處理的依賴關(guān)系。甚至這些細(xì)化也可以并行運行。例如,像A處理后,由B和C并行處理這樣的極其細(xì)致的設(shè)定也是可以實現(xiàn)的。 2.可靈活地執(zhí)行進(jìn)程的啟動。 不僅是在linux系統(tǒng)啟動時,而且也可以設(shè)置各種閥值啟動進(jìn)程。例如定時器,插座通信檢測,文件系統(tǒng)掛載等。根據(jù)系統(tǒng)構(gòu)成的變化也可以自動改變系統(tǒng)。例如,檢測到新的磁盤設(shè)備時,就啟動特定程序等。 3.非PID而是通過cgroup管理進(jìn)程。 Sysvinit的話,服務(wù)是通過PID進(jìn)行管理的。而Systemd則是通過cgroup進(jìn)行管理的。若是PID的情況下,進(jìn)程達(dá)到2次分歧,就直接斷開父進(jìn)程和子進(jìn)程的關(guān)系。cgroup的話,即使發(fā)生多回分歧,也可以進(jìn)行管理。 但是,cgroup是linux內(nèi)核的功能。Linux以外是不能使用的,這也是Systemd的限制,只有在linux內(nèi)核上才能運行。 4.Systemd的歷史 Systemd是以Lennart Poettering和Kay Sievers為中心開發(fā)的。2010年3月發(fā)行最初的版本之后,搭載在2011年發(fā)行的Fedora 15上。 2012年發(fā)行的Red Hat Forum 2012,Red Hat Enterprise Linux 7都聲明采用了Systemd。 而且,2014年12月發(fā)行的Centos7已從Sysvinit變更為systemd。 后話現(xiàn)在,包括Fedora、CentOS、RedHat Enterprise Linux,openSUSE和SUSE Linux Enterprise Server、Oracle Linux、CoreOS、Arch Linux等將systemd作為默認(rèn)的init系統(tǒng)。而且Debian下期版本8(jessie)也要采用Systemd,盡管有Systemd反對派的反對,但是Systemd已成為一種標(biāo)準(zhǔn)。 |
|