您可能想知道的所有信息都在Debian项目所使用的 “ 要使用的 Deit 初始化系统 ”页面上,该页面决定了要使用的初始化系统。在该页面内,有一个指向每个initsystem选择的单独链接。
有关Systemd的入门知识,此页面包含了入门所需的一切,RHEL7:How to Started Systemd。
我发现其他有助于更好地了解2种主要选择的资源,此外,我还将阅读有关相应技术的Wikipedia页面:
Gentoo项目还对各个系统中的一些关键功能进行了很好的比较:
我对你的问题的看法
问题1: systemd与其他init系统相比如何?
在SE回答的范围内,这是一个非常棘手的问题,因此,我宁愿参考上面引用的各种资源。我会这样说。在通读许多有关systemd
替代方案的文章时,它试图解决许多方面的问题,这些方面是以前用于在Linux系统上启动服务的工具所欠缺的。它具有经过深思熟虑的设计,并正在尝试以非常模块化的方式提供它。
系统组件
因此,IMO,我想说它在设计工作,执行该设计以及几个较大的Linux发行版采用它方面都非常有利。
问题2:什么使它与众不同-其他init系统不能做什么?
有许多sytemd
其他系统无法做到的事情。其最强大的功能中的3个可能是:
- 记录中
- 资源限制
- 处理分叉的守护程序
1.记录
在日志记录方面,systemd
已经建立了一个名为“ Journal”的新日志记录系统,该服务称为systemd-journald.service
。这是它自己的主题,您可以在本文标题为:介绍期刊的更多文章中阅读。这是一个用户“ harald”登录的示例。
_SERVICE=systemd-logind.service
MESSAGE=User harald logged in
MESSAGE_ID=422bc3d271414bc8bc9570f222f24a9
_EXE=/lib/systemd/systemd-logind
_COMM=systemd-logind
_CMDLINE=/lib/systemd/systemd-logind
_PID=4711
_UID=0
_GID=0
_SYSTEMD_CGROUP=/system/systemd-logind.service
_CGROUPS=cpu:/system/systemd-logind.service
PRIORITY=6
_BOOT_ID=422bc3d271414bc8bc95870f222f24a9
_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721
_HOSTNAME=waldi
LOGIN_USER=500
2&3.分叉的资源限制和守护程序
systemd
在这里使用一种新颖的方法cgroups
来同时包含和限制资源,这些服务需要分叉或限制对资源的访问。
摘抄
Systemd对于跟踪fork的守护程序问题有一个非常聪明的解决方案,该守护程序恰巧同时处理资源限制。在Upstart使用ptrace监视分支的情况下,systemd在控制组(需要Linux 2.6.24或更高版本)中运行每个守护程序,该守护程序无法通过任何数量的分支从中退出。这允许对派生和非派生守护程序进行轻松的资源限制,因为控制组是针对此类事物而创建的。
资料来源:守护进程对决:新贵vs. Runit vs. Systemd vs.马戏团vs.神
Q#3:从另一个init系统切换到它有什么损失吗?
通过Upstart或sysV init切换到systemd的最大警告可能是必须包含许多新的复杂性。Systemd有很多活动部件,并且功能极为丰富,加上这些附加功能,您可能会花费大量时间来了解其全部工作原理。
问题4:管理systemd与其他系统相比如何?
如我在上面对Q#3的回答中所述。我再次在这里重申。sysV init对于学习如何在几小时到几天内进行管理和导航非常琐碎,Upstart可能会花您一周或更长时间来加快速度,而systemd可能会花您更长的时间,我预计将花费几小时几周的时间来获得关于它的足够的粗略知识,在这里我都将能够产生自己的.service
文件,从而像现在使用sysV init一样轻松地停止/启动服务。
参考文献