> Linux教程 > linux基础 >

systemd 特性列表

systemd 提供以下特性:
 
使用 socket 的前卫的并行性能:为了加速整个系统启动和并行启动更多的进程,systemd 在实际启动守护进程之前创建监听 socket ,然后传递 socket 给守护进程。在系统初始化时,首先为所有守护进程创建 socket ,然后再启动所有的守护进程。如果一个服务因为需要另一个服务的支持而没有完全启动,而这个连接可能正在提供服务的队列中排队,那么这个客户端进程在这次请求中就处于阻塞状态。不过只会有这一个客户端进程会被阻塞,而且仅是在这一次请求中被阻塞。服务间的依赖关系也不再需要通过配置来实现真正的并行启动(因为一次开启了所有的 socket ,如果一个服务需要其他的服务,它显然可以连接到相应的 socket)。
 
D-Bus 激活策略启动服务:通过使用总线激活策略,服务可以在接入时马上启动。同时,总线激活策略使得系统可以用微小的消耗实现 D-Bus 服务的提供者与消费者的同步开启请求。(同时开启多个服务,如果一个比总线激活策略中其他服务快就在 D-Bus 中排队其请求,直到其他管理确定自己的服务信息为止)
 
提供守护进程的按需启动策略
 
保留了使用 Linux cgroups 进程的追踪功能:每一个执行了的进程获得它自己的一个 cgroup ,配置 sysytemd 使其可以存放在 cgroup 中已经经过外部配置的服务非常简单。(如使用 libcgroups utilities )
 
支持快照和系统状态恢复:快照可以用来保存/恢复系统初始化时所有的服务和 unit 的状态。它有两种主要的使用情况:允许用户暂时进入一个像 "Emergency Shell" 的特殊状态,终止当前的服务;提供一个回到先前状态的简单方法,重新启动先前暂时终止的服务。
 
维护挂载和自挂载点:systemd 监视所有的挂载点的进出情况,也可以用来挂载或卸载挂载点。/etc/fstab 也可以作为这些挂载点的一个附加配置源。通过使用 comment= fstab 选项你甚至可以标记 /etc/fstab 条目使其成为由 systemd 控制的自挂载点。
 
实现了各服务间基于依赖关系的一个精细的逻辑控制:systemd 支持服务(或 unit)间的多种依赖关系。在 unit 配置文件中使用 After/Before、Requires 和 Wants 选项可以固定 unit 激活的顺序。Requires 和 Wants 表示一个正向(强制或可选)的需求和依赖关系,Conflicts 表示一个负向的需求和依赖关系。其他选项较少用到。如果一个 unit 需要启动或关闭,systemd 就把它和它的依赖关系添加到临时执行列表,然后确认它们的相互关系是否一致(或所有unit 的先后顺序是否含有循环)。如果答案是否的话,systemd 将尝试修复它,删除可以消除循环的无用工作。
 
另外:
 
它可以控制由它催生的每一个程序:参看原文
 
本地配置文件使用与著名的 .desktop 文件相近的语法:很多软件架构中都有这个简单的语法的分析器。它也可以借用已有的国际化的服务描述工具,语法都是相似的,没有必要再学习新的语法。
 
 
systemadm 
systemd 有一个小的图形前端 systemdadm 。通过它可以开启/停止/内省服务。它是 systemd-gtk 软件包的一部分。不过,它还处于开发状态,功能还不健全,但作为调试工具还是有用的。它是用 Vala 编写的。除非你是一个开发者,否则请不要使用它。
(...更多高级特性)
 
与 SysV 初始化脚本兼容:如果可能,它会利用 LSB 和 Red Hat chkconfig 的头信息内容,否则,就使用其他可用信息,如:/etc/rc.d 。这些初始化脚本仅仅是作为一个附加的配置源,以减少 sysytemd 服务固有的路径数目。
 
/etc/fstab 配置文件:这只是另一个配置源。通过使用 comment= fstab 选项标记 /etc/fstab 条目,使 systemd 可以控制自挂载点。
 
支持简单的模板/实例机制:例如只有一个作为示例的 getty@.service 文件,而不是为六个 getty 都准备一个配置文件。接口部分甚至可以被直接继承,也就是说,可以简单的调用 avahi-autoipd@eth0.service 服务配置 dhcpcd@eth0.service ,使得字符串 eth0 的值可以直接通过通配符匹配得到。
 
在一定程度上兼容 /dev/initctl 。这个兼容性实际上是为了执行 FIFO-activated 服务。(只是简单地把原先的请求转换成为 D-Bus 请求)事实上,这也意味着旧的 Upstart 和 sysvinit 中的 shutdown、poweroff 和其他相似命令可以在 systemd 中继续使用。
 
与 utmp 和 wtmp 兼容。(在一定程度上远不只是为了全面,想想今天的 utmp 和 wtmp 让人是多么的敬而远之吧)
 
更多详细信息,请参看开发者博客 A short list of other feathers 。
(责任编辑:IT)