CentOS 7 中 Systemd详解

目录
    一、systemd的由来
    二、systemd
    三、服务管理
    1、systemctl2
    2、服务查看
    3、服务状态
    4、hostnamectl
    5、localectl
    6、 timedatectl
    7、loginctl
    四、unit
    1、Unit类型
    2、systemctl list-units命令可以查看当前系统的所有 Unit
    3、unit状态
    4、依赖关系
    五、unit配置文件
    1、概述
    2、配置文件状态
    3、配置文件格式
    1)unit配置文件格式
    2)Unit段的常用选项
    3)service常用的选项
    4)install 常用选项
    六、Target
    1、Target命令
    2、Target与传统 RunLevel 的对应关系如下
    3、它与init进程的主要差别如下
    七、日志管理
    1、journalctl功能强大,用法非常多
    2、查看指定优先级(及其以上级别)的日志,共有8级

一、systemd的由来
Linux一直以来采用init进程但是init有两个缺点:
1、启动时间长。Init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。(这也是CentOS5的主要特征)
2、启动脚本复杂。Init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这使得脚本变得很长而且复杂。
Init:
  Centos 5 Sys init 是启动速度最慢的,串行启动过程,无论进程相互之间有无依赖关系。
  Centos6 Upstart init 相对启动速度快一点有所改进。有依赖的进程之间依次启动而其他与之没有依赖关系的则并行同步启动。
  Centos7 Systemd 与以上都不同。所有进程无论有无依赖关系则都是并行启动(当然很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动。)
二、systemd
  Systemd为了解决上文的问题而诞生。它的目标是,为系统的启动和管理提供一套完整的解决方案。根据linux惯例,字母d是守护进程(daemon) 的缩写。Systemd名字的含义就是 守护整个系统。
  Centos 7里systemd代替了init,成为了系统的第一个进程。PID为1.其他所有的进程都是它的子进程。Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反"keep simple, keep stupid"的Unix 哲学。

Systemd 架构图

CentOS 7 中 Systemd详解


 
三、服务管理
  1、systemctl
        Systemctl是systemd的主要命令,用于管理系统。
Centos  7 :service unit
注意:能兼容早期的服务脚本
  命令格式
   
#systemctl COMMAND name.service
    重启系统
    #  systemctl reboot
    关闭系统,切断电源
    #  systemctl poweroff
    CPU停止工作
    #  systemctl halt
    暂停系统
    #  systemctl suspend
    让系统进入冬眠状态
    #  systemctl hibernate
    让系统进入交互式休眠状态
    #  systemctl hybrid-sleep
    启动进入救援状态(单用户状态)
    # systemctl rescue
    启动服务
    #service name start ==> systemctl start name.service
    停止服务
    #service name stop ==> systemctl  stop name.service
    重启服务
    #service name restart ==> systemctl restart name.service
    查看服务状态
    #service name status ==> systemctl status name.service
    条件式重启:已启动才重启,否则不做操作
    #service name condrestart ==> systemctl tryrestart name.service
    重载或重启服务:先加载,再启动
    #systemctl reload-or-restart name.service
    重载或条件式重启服务:
    #systemctl reload-or-try-restart name.service
    禁止自动和手动启动:
    #systemctl mask name.service
    取消禁止:
    #systemctl unmask name.service

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3b8af29d0536e48721d1836e32246c0a.html