美文网首页
CentOS7下Systemctl详解

CentOS7下Systemctl详解

作者: JerryAi | 来源:发表于2019-08-11 22:59 被阅读0次

一、Systemd简介

Systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,systemd是Linux系统中最新的初始化系统(init),它主要的设计目的是克服Sys V 固有的缺点,提高系统的启动速度,systemd和upstart是竞争对手,ubantu上使用的是upstart的启动方式,centos7上使用systemd替换了Sys V,Systemd目录是要取代Unix时代依赖一直在使用的init系统,兼容SysV和LSB的启动脚本,而且能够在进程启动中更有效地引导加载服务。
system:系统启动和服务器守护进程管理器,负责在系统启动或运行时,激活系统资源,服务器进程和其他进程,根据管理,字母d是守护进程(daemon)的缩写,systemd这个名字的含义就是它要守护整个系统。

二、Systemd新特性

  • 系统引导时实现服务并行启动
  • 按需启动守护进程
  • 自动化的服务依赖关系管理
  • 同时采用socket式与D-Bus总线式激活服务
  • 系统状态快照和恢复
  • 利用Linux的cgroups监视进程
  • 维护挂载点和自动挂载点
  • 各服务间基于依赖关系进行精密控制

三、Systemd核心概念

Unit

表示不同类型的sytemd对象,通过配置文件进行标识和配置,文件中主要包含了系统服务,监听socket、保存的系统快照以及其他与init相关的信息

配置文件:

/usr/lib/systemd/system:

每个服务最主要的启动脚本设置,类似于之前的/etc/initd.d

/run/system/system

系统执行过程中所产生的服务脚本,比上面的目录优先运行

/etc/system/system

管理员建立的执行脚本,类似于/etc/rc.d/rcN.d/Sxx类的功能,比上面目录优先运行,在三者之中,此目录优先级最高

四、Unit类型

  • systemctl -t help :查看unit类型

  • service unit:文件扩展名为.service,用于定义系统服务

  • target unit:文件扩展名为.target,用于模拟实现“运行级别”

  • device unit: .device,用于定义内核识别的设备

  • mount unit :.mount,定义文件系统挂载点

  • socket unit :.socket,用于标识进程间通信用的socket文件,也可以在系统启动时,延迟启动服务,实现按需启动

  • snapshot unit:.snapshot,关系系统快照

  • swap unit:.swap,用于表示swap设备

  • automount unit:.automount,文件系统的自动挂载点如:/misc目录

  • path unit:.path,用于定义文件系统中的一个文件或目录使用,常用于当文件系统变化时,延迟激活服务,如spool目录

  • time:.timer由systemd管理的计时器
    注:使用systemctl控制单元时,通常需要使用单元文件的全名,包括扩展名,但是有些单元可以在systemctl中使用简写方式,如果无扩展名,systemctl默认把扩展名当做.service。例如netcfg和netcfg.service是等同的挂载点会自动转化为相应的.mount单元,例如/home等价于home.mount设备会自动转化为相应的.device单元,所以/dev/sd2等价于dev-sda2.device

五、关键特性

  • 基于socket的激活机制:socket与服务进程分离
  • 基于D-Bus的激活机制
  • 基于device的激活机制
  • 基于path的激活机制
  • 系统快照:保存各unit的当前状态信息于持久存储设备中想后兼容sysv init脚本

六、不兼容

systemctl命令固定不变,不可扩展
非由systemd启动的服务,systemctl无语与之通信和控制,如:使用之前sys v风格管理的进程就无法收systemd控制

七、Systemd基本工具

监视和控制systemd的主要命令是systemctl。该命令可用于查看系统状态和管理系统及服务。

管理服务

命令:systemctl  command name.service
启动: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

条件式重启(已启动才重启,否则不做任何操作)

systemctl try-restart name.service

重载或重启服务(先加载,然后再启动)

systemctl reload-or-try-restart name.service

禁止自动和手动启动

systemctl mask name.service   

执行此条命令实则创建了一个链接

ln -s '/dev/null' '/etc/systemd/system/sshd.service'

取消禁止

systemctl unmask name.service   

删除此前创建的链接

服务查看(查看某服务当前激活与否的状态)

systemctl is-active name.service   

如果启动会显示active,否则会显示unknown

查看所有已经激活的服务

systemctl list-units –t service

设定某服务开机启动

systemctl enable name.service

设定某服务开机禁止启动

systemctl disable name.service

查看服务是否开机自启

systemctl is-enabled name.servcice

查看服务的依赖关系

systemctl list-dependencies

查看启动失败的服务

systemctl --failed -t service

查看服务单元的启用和禁用状态

systemctl list-unit-files –t=service

杀死进程

systemctl kill 进程名 

查看服务是否开机自启

systemctl is-enabled name.servcice

查看开机启动项

systemctl list-unit-files |   grep enable

为服务添加开机启动项

systemctl enable name.service

移除开机启动项的服务

systemctl disable name.service

查找所有或者某个服务

systemctl list-units --type=service 

服务状态

  • systemctl list-units -t service -a 显示状态
  • loaded:unit配置文件已处理
  • active(running):一次或多次持续处理的运行
  • active(exited):成功完成一次性的配置
  • active(waiting):运行中,等待一个事件
  • inactive:不运行
  • enabled:开机启动
  • disabled:开机不启动
  • static:开机不启动,但可以被另一个启用的服务激活

相关文章

  • CentOS7下Systemctl详解

    一、Systemd简介 Systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,sys...

  • CentOS7下Systemctl详解

    一、Systemd简介 Systemd是由红帽公司的一名叫做Lennart Poettering的员工开发,sys...

  • Linux 安装 mysql

    systemctl[https://man.linuxde.net/systemctl] Centos7,redh...

  • Linux常用操作

    centos7关闭防火墙: systemctl stop firewalld.service systemctl ...

  • CentOS7中systemctl命令详解

    Linux Systemctl是一个系统管理守护进程、工具和库的集合,用于取代System V、service和c...

  • Linux管理-系统服务管理

    systemctl是CentOS7的服务管理工具中主要的工具 启动服务:systemctl start <服务名>...

  • Systemctl 详解

    Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。 一、命令 1.1 systemctl ...

  • 防火墙

    Centos7的防火墙服务:firewalld systemctl start firewalldfirewall...

  • systemctl启动redis配置

    在centos7下面使用systemctl启动redis 1,找到服务加载文件地址: 2,如果没有redis.se...

  • firewall 基本使用

    环境:CentOS7 安装&启动 安装:yum install firewalld 启动: systemctl s...

网友评论

      本文标题:CentOS7下Systemctl详解

      本文链接:https://www.haomeiwen.com/subject/gyyejctx.html