systemd 与 sysVinit 彩版对照表

systemd 是一种新型init系统「译者注:每个操作系统都有一个启动程序,而Linux init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以init始终是第一个进程(其进程编号始终为1)」,最早在Fedora中使用「译者注:据维基百科资料:http://en.wikipedia.org/wiki/Systemd#Adoption,最早使用 systemd 的是gentoo,最早使用并成为默认 init system 的是openSUSE。」,经过调整适应了其它许多发行版,例如RedHat、Suse和CentOS。

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

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

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

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

这个命令能够显示更多的详细错误信息和包括启动错误在内的服务运行时错误。systemd引入了一个新术语:cgroups(控制组),它基本上是可被分层次安排的进程任务组。「译者注:这里简单介绍一下cgroup(control group)称为Containers,Containers着眼于资源的分配,利用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中国 荣誉推出

时间: 2024-10-06 11:34:34

systemd 与 sysVinit 彩版对照表的相关文章

CentOS7进程管理systemd详解

概述: 系统启动过程中,当内核启动完成,后加载根文件系统,后就绪的一些用户空间的服务的管理工作,就交由init进行启动和管理,在CentOS6之前的init的管理方式都类似,相关的内容我们在之前的文章中也做出过介绍.在CentOS7上,init变成了systemd,其管理方式也发生了重大的变化,本章就跟大家欧一起探讨一些关于CentOS7上的systemd的新特性的内容.具体分为一下几个方面: 1.systemd新特性简介 2.systemd如何管理系统系统上的各服务 3.systemd管理各个

CentOS 7 学习笔记(二)systemd

sysVinit启动原理在我们打开Linux电脑的电源后第一个启动的进程就是init.分配给init进程的PID是1.它是系统其他所有进程的父进程.当一台Linux电脑启动后,处理器会先在系统存储中查找BIOS,之后BIOS会检测系统资源然后找到第一个引导设备,通常为硬盘,然后会查找硬盘的主引导记录(MBR),然后加载到内存中并把控制权交给它,以后的启动过程就由MBR控制.主引导记录会初始化引导程序(Linux上有两个著名的引导程序,GRUB和LILO,80%的Linux系统在用GRUB引导程序

初识 systemd

从 init 系统说起 linux 操作系统的启动首先从 BIOS 开始,接下来进入 boot loader,由 bootloader 载入内核,进行内核初始化.内核初始化的最后一步就是启动 PID 为 1 的 init 进程.这个进程是系统的第一个进程.它负责产生其他所有的用户进程.init 进程以守护进程(也就是服务)的方式存在,是所有其他进程的祖先.init 进程非常独特,能够完成其他进程无法完成的任务.init 系统能够定义.管理和控制 init 进程的行为.它负责组织和运行许多独立的或

[Linux]systemd和sysV

转自:https://www.cnblogs.com/EasonJim/p/7168216.html 在Debian8中systemd和sysVinit同时存在,NTP就是在/etc/init.d/ntp中启动 首先了解以下Ubuntu运行级别(init)对应工具的变化历史: 1.Ubuntu 6.10及以前版本使用Sysvinit. 2.Ubuntu 14.10及以前版本使用Upstart但是还留着Sysvinit并存. https://wiki.ubuntu.com/Upstart http

centos7系统管理和运维实战

RHEL中包含了红帽自行开发的闭源软件,如红帽集群套件,这些软件并未开放源代码,因此也就未包含在centos发行版中centos发行版通常会修改RHEL中存在的bug,并提供了一个yum源以便用户可以随时更新操作系统 centos7使用的内核是3.10.0:对swap内存空间进行压缩,提高IO性能,优化KVM虚拟化,默认使用XFS文件系统,使用firewalld防火墙,Linux容器,systemd代替sysvinit 使存在依赖的服务之间更好地并行化

Mac服务管理-Launchd(转)

背景: 在Mac下没有像Linux那样有很多的关于init方面的工具,从init的发展历史https://en.wikipedia.org/wiki/Init上可以知道,Mac使用的是Launchd作为init管理工具,对应的命令工具为launchctl. 如果在Linux下创建一个自启动服务可以使用Upstart.Systemd.Sysvinit,其中最简单和最古老的方式应该是Sysvinit,毕竟其支持Shell脚本,非常方便.而在Mac下,与Linux的做法不太一样,采用Launchd进行

CentOS之7与6的区别

前言 centos7与6之间最大的差别就是初始化技术的不同,7采用的初始化技术是Systemd,并行的运行方式,除了这一点之外,服务启动.开机启动文件.网络命令方面等等,都说6有所不同.让我们先来了解一下系统初始化技术的演变过程. 1.系统初始化技术 Sysvinit技术 Upstart技术 Systemd技术 Sysvinit技术 特点: 1.系统第1个进程为init;2.init进程是所有进程的父进程,不可kill:3.大多数Linux发行版的init系统是和SystemV相兼容的,被称为s

LFS(1)——软件包及其功能

为了让自己更加深入理解Linux整个系统架构及工作原理,最近通过LFS学习研究自制Linux系统.参考LFS简体中文7.7版本. 软件包及其功能: Acl 管理访问控制列表(ACL)的工具,用于定义文件和目录更细微粒的自主访问权. Attr 管理文件系统的对象扩展属性的程序. Autoconf 能根据开发者的模版自动生成配置源代码的shell脚本的程序.更新了构建过程之后重新构建软件包通常需要这个. Automake 包括了从模版生成Make文件的程序.更新了构建过程之后重新构建软件包通常需要这

Centos 6.2_X86_64 编译安装postfix+amavisd-new+clamav

系统环境 CENTOS6.2 X86-64 并已经使用yum安装配置好LNMP环境 以下是安装所使用的部分软件包 shell>cd /usr/local/src shell>wget http://jaist.dl.sourceforge.net/project/courier/imap/4.16.0/courier-imap-4.16.0.tar.bz2 shell>wget ftp://ftp.cuhk.edu.hk/pub/packages/mail-server/postfix/