TranslateProject/published/201409/20140910 Colourful systemd vs sysVinit Linux Cheatsheet.md
2014-11-01 21:02:39 +08:00

3.2 KiB
Raw Blame History

systemd 与 sysVinit 彩版对照表

systemd 是一种新型init系统「译者注每个操作系统都有一个启动程序而Linux init是Linux系统操作中不可缺少的程序之一。所谓的init进程它是一个由内核启动的用户级进程。内核自行启动已经被载入内存开始运行并已初始化所有的设备驱动程序和数据结构等之后就通过启动一个用户级程序init的方式完成引导进程。所以init始终是第一个进程其进程编号始终为1最早在Fedora中使用「译者注真的吗不是Arch经过调整适应了其它许多发行版例如RedHat、Suse和CentOS。

历史上我们大部分人用过传统的SysV init 初始化脚本,它通常情况下在/etc/rc.d/init.d/文件夹下。这些脚本调用守护进程二进制代码在后台fork一个进程。

尽管shell脚本非常的灵活但是很难实现像superviseing监管进程和并行执行命令这样的任务。

通过对systemd的新式守护进程的介绍我们发现systemd可以在runtime运行时更加简单的监管和控制守护进程并且简化了监控的实现方式implementation

systemctl命令是systemd团队一个非常好的首创。

这个命令能够显示更多的详细错误信息和包括启动错误在内的服务运行时错误。systemd引入了一个新术语cgroups控制组它基本上是可被分层次安排的进程任务组。「译者注这里简单介绍一下cgroupcontrol group称为ContainersContainers着眼于资源的分配利用configfs作配置。它有两个重要概念第一是subsystem内核可以给进程提供的服务/资源第二是container一个进程组成员共享同样的一个或多个子系统分配限制。Containers是分层次的一个container可以hold多个container。它的可取之处是创建了一个资源分配的框架其它开发者可以利用这个框架去开发自己的资源分配patch比如磁盘设备。」

如果仅仅通过原来的初始化系统,决定哪个进程是做什么的、属于哪个用户的变得越来越困难。

但是通过systemd当一个进程派生其它进程时这些子进程会被自动变成父进程控制组的成员这样一来就可以避免继承的混乱。

有许多新的运行在 rhel / centos 7.0 上的 systemd 命令可以替代 sysvinit 的对应命令。你也可以下载 本文的 PDF 版本


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

作者:Bobbin Zachariah 译者:szrlee 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出