PUB:20141112 Intro to Systemd Runlevels and Service Management Commands

@coloka
This commit is contained in:
wxy 2014-12-22 21:37:51 +08:00
parent 2cb3b0820d
commit 614911fde4

View File

@ -1,4 +1,4 @@
运行级别与服务管理命令systemd简介
systemd的运行级别与服务管理命令简介
================================================================================
![](http://www.linux.com/images/stories/41373/Linux_kernel_unified_hierarchy_cgroups_and_systemd.svg.png)
@ -6,20 +6,21 @@
在开始介绍systemd命令前让我们先简单的回顾一下历史。在Linux世界里有一个很奇怪的现象一方面Linux和自由软件FOSS在不断的向前推进另一方面人们对这些变化却不断的抱怨。这就是为什么我要在此稍稍提及那些反对systemd所引起的争论的原因因为我依然记得历史上有不少类似的争论
- 软件包Pacakge是邪恶的因为真的Linux用户会从源码构建他所想要的的一切并严格的管理系统中安装的软件。
- 解析依赖关系的包管理器是邪恶的,真的Linux用户会手动解决这些该死的依赖关系。
- 软件包Pacakge是邪恶的因为真的Linux用户会从源码构建他所想要的的一切并严格的管理系统中安装的软件。
- 解析依赖关系的包管理器是邪恶的,真的Linux用户会手动解决这些该死的依赖关系。
- apt-get总能把事情干好所以只有Yum是邪恶的。
- Red Hat简直就是Linux中的微软。
- 好样的Ubuntu
- 滚蛋吧Ubuntu
诸如此类...就像我之前常常说的一样变化总是让人沮丧。这些该死的变化搅乱了我的工作流程这可不是一件小事情任何业务流程的中断都会直接影响到生产力。但是我们现在还处于计算机发展的婴儿期在未来的很长的一段时间内将会持续有快速的变化和发展。想必大家应该都认识一些因循守旧的人在他们的心里商品一旦买回家以后就是恒久不变的就像是买了一把扳手、一套家具或是一个粉红色的火烈鸟草坪装饰品。就是这些人仍然在坚持使用Windows Vista甚至还有人在使用运行Windows95的老破烂机器和CRT显示器。他们不能理解为什么要去换一台新机器。老的还能用啊不是么
诸如此类...就像我之前常常说的一样变化总是让人沮丧。这些该死的变化搅乱了我的工作流程这可不是一件小事情任何业务流程的中断都会直接影响到生产力。但是我们现在还处于计算机发展的婴儿期在未来的很长的一段时间内将会持续有快速的变化和发展。想必大家应该都认识一些因循守旧的人在他们的心里商品一旦买回家以后就是恒久不变的就像是买了一把扳手、一套家具或是一个粉红色的火烈鸟草坪装饰品。就是这些人仍然在坚持使用Windows Vista甚至还有人在使用运行Windows 95的老破烂机器和CRT显示器。他们不能理解为什么要去换一台新机器。老的还能用啊不是么
这让我回忆起了我在维护老电脑上的一项伟大的成就那台破电脑真的早就该淘汰掉。从前我有个朋友有一台286的老机器安装了一个极其老的MS-DOS版本。她使用这台电脑来处理一些简单的任务比如说约会、日记、记账等我还用BASIC给她写了一个简单的记账软件。她不用关注任何安全更新是这样么因为它压根都没有联网。所以我会时不时给她维修一下电脑更换电阻、电容、电源或者是CMOS电池什么的。它竟然还一直能用。它那袖珍的琥珀CRT显示器变得越来越暗在使用了20多年后终于退出了历史舞台。现在我的这位朋友换了一台运行Linux的老Thinkpad来干同样的活。
前面的话题有点偏题了下面抓紧时间开始介绍systemd。
###运行级别 vs. 状态###
SysVInit使用静态的运行级别来构建不同的启动状态大部分发布版本中提供了以下5个运行级别
- 单用户模式Single-user mode
@ -28,7 +29,7 @@ SysVInit使用静态的运行级别来构建不同的启动状态大部分发
- 系统关机System shutdown
- 系统重启System reboot
对于我来说,使用多个运行级别并没有太大的好处,但它们却一直在系统中存在着。 不同于运行级别systemd可以创建不同的状态状态提供了灵活的机制来设置启动时的配置项。这些状态是由多个unit文件组成的状态又叫做启动目标target。启动目标有一个漂亮的描述性命名而不是像运行级别那样使用数字。unit文件可以控制服务、设备、套接字和挂载点。参考/usr/lib/systemd/system/graphical.target这是CentOS 7默认的启动目标
对于我来说,使用多个运行级别并没有太大的好处,但它们却一直在系统中存在着。 不同于运行级别systemd可以创建不同的状态状态提供了灵活的机制来设置启动时的配置项。这些状态是由多个unit文件组成的状态又叫做启动目标target。启动目标有一个清晰的描述性命名而不是像运行级别那样使用数字。unit文件可以控制服务、设备、套接字和挂载点。参考/usr/lib/systemd/system/graphical.target这是CentOS 7默认的启动目标
[Unit]
Description=Graphical Interface
@ -71,15 +72,16 @@ SysVInit使用静态的运行级别来构建不同的启动状态大部分发
DIR_SUFFIX="${APACHE_CONFDIR##/etc/apache2-}"
else
DIR_SUFFIX=
整个文件一共有410行。
你可以检查unit件的依赖关系我常常被这些复杂的依赖关系给吓到
你可以检查unit件的依赖关系,我常常被这些复杂的依赖关系给吓到:
$ systemctl list-dependencies httpd.service
### cgroups ###
cgroups或者叫控制组在Linux内核里已经出现好几年了但直到systemd的出现才被真正使用起来。[The kernel documentation][1]中是这样描述cgroups的“控制组提供层次化的机制来管理任务组使用它可以聚合和拆分任务组并管理任务组后续产生的子任务。”换句话说它提供了多种有效的方式来控制、限制和分配资源。systemd使用了cgroups你可以便捷查看它使用下面的命令可以展示你系统中的整个cgroup树
cgroups或者叫控制组在Linux内核里已经出现好几年了但直到systemd的出现才被真正使用起来。[The kernel documentation][1]中是这样描述cgroups的“控制组提供层次化的机制来管理任务组使用它可以聚合和拆分任务组并管理任务组后续产生的子任务。”换句话说它提供了多种有效的方式来控制、限制和分配资源。systemd使用了cgroups你可以便捷查看它使用下面的命令可以展示你系统中的整个cgroup树
$ systemd-cgls
@ -115,7 +117,7 @@ via: http://www.linux.com/learn/tutorials/794615-systemd-runlevels-and-service-m
作者:[Carla Schroder][a]
译者:[coloka](https://github.com/coloka)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出