笔者在前文中概要的介绍了systemd的基本概念和主要特点。由于systemd相关的绝大多数任务都是通过systemctl命令管理的,所以本文将集中的介绍systemctl命令的用法。注意,本文以ubuntu 16.04进行介绍,文中所有的演示都在ubuntu 16.04中完成。
systemctl命令有两大类功能:
-
<李>控制systemd系统李>
<李>管理系统上运行的服务李>
在介绍这些功能前让我们先来热个身,了解些systemctl命令自身相关的信息。
<>强预热强>
检查systemd的版本
systemctl美元——版本
查看systemd和systemctl程序相关的目录
那儿离美元systemd 那儿离美元systemctl
<强>确认1号进程强>
作为init系统,systemd进程作为系统中的1号进程应该是毋庸置疑的,让我们搜索与systemd相关的进程:
结果让人有点不敢相信自己的眼睛,我们搜到了好几个与systemd相关的进程,但是却没有1号进程。让我们看看1号进程是谁:
/sbin/init是什么?
好吧/sbin/init只是到/lib/systemd/systemd的链接文件,系统的1号进程的确是systemd,只不过在ubuntu系统中被起了个别名叫/sbin/init。
<>强管理单个单位强>
systemctl提供了一组子命令来管理单个的单位,其命令格式为:
systemctl(命令)(单位)
命令主要有:
开始:立刻启动后面接的单位。
站:立刻关闭后面接的单位。
重启:立刻关闭后启动后面接的单位,亦即执行停止再开始的意思。
重载:不关闭单元的情况下,重新载入配置文件,让设置生效。
启用:设置下次开机时,后面接的单位会被启动。
禁用:设置下次开机时,后面接的单位不会被启动。
状态:目前后面接的这个单位的状态,会列出有没有正在执行,开机时是否启动等信息。
积极:目前有没有正在运行中。
让:开机时有没有默认要启用这个单位。
杀:不要被杀了这个名字吓着了,它其实是向运行单元的进程发送信号。
显示:列出单元的配置。
面具:注销单位,注销后你就无法启动这个单元了。
揭露:取消对单位的注销。
我们先通过普罗米修斯。服务来观察服务类型单元的基本信息:
输出内容的第一行是对单位的基本描述。
第二行中加载的描述操作系统启动时会不会启动这个服务,启用表示开机时启动,禁用表示开机时不启动。而启动该服务的配置文件路径为:/lib/systemd/系统/普罗米修斯。服务。
第三行中活跃的描述服务当前的状态,活跃(运行)表示服务正在运行中。如果是不活跃(死)则表示服务当前没有运行。后面则是服务的启动时间。
第四行的文档提供了在线文档的地址。
下面主要的PID表示进程的ID,接下来是任务的数量,占用的内存和CPU资源。
再下面的Cgroup描述的是cgrpup相关的信息,笔者会在后续的文章中详细的介绍。
最后是输出的日志信息。
关于单位的启动状态,除了启用和禁用之外还有:
静态:这个单位不可以自己启动,不过可能会被其它的启用的服务来唤醒。
面具:这个单位无论如何都无法被启动!因为已经被强制注销。可通过systemctl揭开改回原来的状态。
关于单位的运行状态活跃,除了活跃的和不活跃之外还有:
活动(退出):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。举例来说,开机或者是挂载时才会进行一次的quotaon功能,就是这种模式! quotaon不需要一直执行,只在执行一次之后,就交给文件系统去自行处理,通常用bash shell写的小型服务,大多是属于这种类型。