新的 Linux Init系统

回顾几十年前乃至今天,对于Linux和unix-like的系统,启动系统和启动服务都还大多基于Unix System V的init系统和其常见的init.d脚本的基础上进行的。

但是随着Systemd的产生和迅速应用,这一状况正在改变,新的Systemd集成了功能强大的服务和工具,旨在更好地控制大部分系统上的系统和服务的启动。

Systemd最先应用于2010年的Fedora 14,并被Arch Linux采用了数年。

Systemd有3个主要功能:

  • 管理系统和服务——最常用的功能
  • 软件平台(作为开发其它软件的基础)
  • 连接应用和内核,为内核功能提供各种接口。

Initd可以进行服务管理,但是也仅限于服务管理。Systemd的优势包括服务依赖性、对服务进程更好的排序和监控、以及发生错误时的自动重启功能。

这类服务也可根据用户意愿通过其它服务完成。Systemd废除了运行级别(现在称为目标)的概念。Systemd也(能够)胜任对登陆、控制台、各类udev插拔、cron、主机名称以及本地化的管理和控制。传统服务与Systemd兼容,并且现在称为“单元”。init.d脚本也可以兼容工作。主机名称则位于/etc/hostname。

作为init服务的替代品,Systemd是近年来Lunix所推出的产品和服务中最具争议的改变,其安装启用一直伴随着阻力和争议。过于复杂、任性地打破Unix系统单一工具用于单一目的原则使其饱受批评。并且其二进制日志的形式也受到了冷遇。

作为一系列应用程序的组合,Systemd至少在理论上可以完成了设备和某些内核的交互等多种工作。这类挑战导致Linux社区发生严重分裂,一方完全支持,另一方则激烈抵制(RedHat、CentOS和Ubuntu都采用了Systemd,Slackware则故意拒绝采用)。但是,木已成舟,不管喜不喜欢,我们不得不与Systemd打交道。

总的来说,Systemd在RHEL / CentOS(还有Debian / Ubuntu)系统中取代了init,并改变了很多东西,包括如何启动/停止、如何监控、以及怎样/如何记录日志,systemd在这方面有很多强大的配置选项。

此类差异使得拥有大量服务器的企业的升级过程非常麻烦。对于运维团队来说,这也是不小的变化,对于采用Systemd的系统的管理,并妥善处理好所有的服务、程序包和脚本会需要几年的时间来适应。(尽管Systemd支持init.d脚本)

对于Lunix社区的大部分系统来说,Systemd对系统改进是利大于弊的。尽管Systemd并没有被所有版本的Lunix系统采用,但是大部分系统很快就会采用。未来是属于Systemd的。

Systemd有着一个完整工具链特性,并以与不同发行版本之间保持更强兼容性为己任,不管喜欢与否,Systemd时代的到来似乎已成定局。


Tags: Linux
Categories: Linux

发表评论

电子邮件地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *