linux systemctl命令详解

  

笔者在前文中概要的介绍了systemd的基本概念和主要特点。由于systemd相关的绝大多数任务都是通过systemctl命令管理的,所以本文将集中的介绍systemctl命令的用法。注意,本文以ubuntu 16.04进行介绍,文中所有的演示都在ubuntu 16.04中完成。

  

systemctl命令有两大类功能:

  
      <李>控制systemd系统李   <李>管理系统上运行的服务李   
  

在介绍这些功能前让我们先来热个身,了解些systemctl命令自身相关的信息。

  

<>强预热

  

检查systemd的版本

        systemctl美元——版本      

發inux

  

查看systemd和systemctl程序相关的目录

        那儿离美元systemd   那儿离美元systemctl      

發inux

  

<强>确认1号进程
  

  

作为init系统,systemd进程作为系统中的1号进程应该是毋庸置疑的,让我们搜索与systemd相关的进程:

  

發inux

  

结果让人有点不敢相信自己的眼睛,我们搜到了好几个与systemd相关的进程,但是却没有1号进程。让我们看看1号进程是谁:

  

發inux

  

/sbin/init是什么?

  

發inux

  

好吧/sbin/init只是到/lib/systemd/systemd的链接文件,系统的1号进程的确是systemd,只不过在ubuntu系统中被起了个别名叫/sbin/init。

  

<>强管理单个单位

  

systemctl提供了一组子命令来管理单个的单位,其命令格式为:
  systemctl(命令)(单位)
  命令主要有:
  开始:立刻启动后面接的单位。
  站:立刻关闭后面接的单位。
  重启:立刻关闭后启动后面接的单位,亦即执行停止再开始的意思。
  重载:不关闭单元的情况下,重新载入配置文件,让设置生效。
  启用:设置下次开机时,后面接的单位会被启动。
  禁用:设置下次开机时,后面接的单位不会被启动。
  状态:目前后面接的这个单位的状态,会列出有没有正在执行,开机时是否启动等信息。
  积极:目前有没有正在运行中。
  让:开机时有没有默认要启用这个单位。
  杀:不要被杀了这个名字吓着了,它其实是向运行单元的进程发送信号。
  显示:列出单元的配置。
  面具:注销单位,注销后你就无法启动这个单元了。
  揭露:取消对单位的注销。

  

我们先通过普罗米修斯。服务来观察服务类型单元的基本信息:

  

發inux

  

输出内容的第一行是对单位的基本描述。
  第二行中加载的描述操作系统启动时会不会启动这个服务,启用表示开机时启动,禁用表示开机时不启动。而启动该服务的配置文件路径为:/lib/systemd/系统/普罗米修斯。服务。
  第三行中活跃的描述服务当前的状态,活跃(运行)表示服务正在运行中。如果是不活跃(死)则表示服务当前没有运行。后面则是服务的启动时间。
  第四行的文档提供了在线文档的地址。
  下面主要的PID表示进程的ID,接下来是任务的数量,占用的内存和CPU资源。
  再下面的Cgroup描述的是cgrpup相关的信息,笔者会在后续的文章中详细的介绍。
  最后是输出的日志信息。

  

关于单位的启动状态,除了启用和禁用之外还有:
  静态:这个单位不可以自己启动,不过可能会被其它的启用的服务来唤醒。
  面具:这个单位无论如何都无法被启动!因为已经被强制注销。可通过systemctl揭开改回原来的状态。

  

关于单位的运行状态活跃,除了活跃的和不活跃之外还有:
  活动(退出):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。举例来说,开机或者是挂载时才会进行一次的quotaon功能,就是这种模式! quotaon不需要一直执行,只在执行一次之后,就交给文件系统去自行处理,通常用bash shell写的小型服务,大多是属于这种类型。

linux systemctl命令详解