学会爱上 systemd( 二 )


为何我更喜欢 systemd
我更喜欢用 systemd 作为启动机制,因为它会根据启动阶段并行地启动尽可能多的服务 。这样可以加快整个的启动速度,使得主机系统比 SystemV 更快地到达登录屏幕 。
systemd 几乎可以管理正在运行的 Linux 系统的各个方面 。它可以管理正在运行的服务,同时提供比SystemV 多得多的状态信息 。它还管理硬件、进程和进程组、文件系统挂载等 。systemd 几乎涉足于现代 Linux 操作系统的每方面,使其成为系统管理的一站式工具 。(听起来熟悉吧?)
systemd 工具是编译后的二进制文件,但该工具包是开放的,因为所有配置文件都是 ASCII 文本文件 。可以通过各种 GUI 和命令行工具来修改启动配置,也可以添加或修改各种配置文件来满足特定的本地计算环境的需求 。
真正的问题
你认为我不能喜欢两种启动系统吗?我能,我会用它们中的任何一个 。
我认为,SystemV 和 systemd 之间大多数争议的真正问题和根本原因在于,在系统管理层面 没有选择权。使用 SystemV 还是 systemd 已经由各种发行版的开发人员、维护人员和打包人员选择了(但有充分的理由) 。由于 init 极端的侵入性,挖出并替换 init 系统会带来很多影响,会带来很多在发行版设计过程之外难以解决的后果 。
尽管该选择实际上是为我而选的,但我的Linux主机能不能开机、能不能工作,这是我平时最关心的 。作为最终用户,甚至是系统管理员,我主要关心的是我是否可以完成我的工作,例如写我的书和这篇文章,安装更新以及编写脚本来自动化所有事情 。只要我能做我的工作,我就不会真正在意发行版中使用的启动系统 。
在启动或服务管理出现问题时,我会在意 。无论主机上使用哪种启动系统,我都足够了解如何沿着事件顺序来查找故障并进行修复 。
替换SystemV
以前曾有过用更现代的东西替代 SystemV 的尝试 。大约在两个版本中,Fedora 使用了一个叫作 Upstart 的东西来替换老化的 SystemV,但是它没有取代 init,也没有提供我所注意到的任何变化 。由于 Upstart 并未对 SystemV 的问题进行任何显著的改变,所以在这个方向上的努力很快就被放弃了,转而使用 systemd 。
尽管大部分 Linux 开发人员都认可替换旧的 SystemV 启动系统是个好主意,但许多开发人员和系统管理员并不喜欢 systemd 。与其重新讨论人们在 systemd 中遇到的或曾经遇到过的所有所谓的问题,不如带你去看两篇好文章,尽管有些陈旧,但它们涵盖了大多数内容 。Linux 内核的创建者 Linus Torvalds 对 systemd 似乎不感兴趣 。在 2014 年 ZDNet 的一篇文章《 Linus Torvalds 和其他人对 Linux 上的 systemd 的看法 》中,Linus 清楚地表达了他的感受 。

“实际上我对 systemd 本身没有任何特别强烈的意见 。我对一些核心开发人员有一些问题,我认为他们在对待错误和兼容性方面过于轻率,而且我认为某些设计细节是疯狂的(例如,我不喜欢二进制日志),但这只是细节,不是大问题 。”
如果你对 Linus 不太了解的话,我可以告诉你,如果他不喜欢某事,他是非常直言不讳的,很明确,而且相当明确的表示不喜欢 。他解决自己对事物不满的方式已经被社会更好地接受了 。
2013 年,Poettering 写了一篇很长的博客,他在文章驳斥了 关于 systemd 的迷思,同时对创建 systemd 的一些原因进行了深入的剖析 。这是一分很好的读物,我强烈建议你阅读 。
systemd 任务根据编译过程中使用的选项(不在本系列中介绍),systemd 可以有多达 69 个二进制可执行文件执行以下任务,其中包括: