Systemd

目录

一、Systemd介绍

1.Systemd新特性

2.核心概念:unit

3.Unit的类型

4.关键特性

二、管理系统服务

1.service命令与systemctl的对应关系

2.chkconfig命令与systemctl的对应关系

3.target units

4.其它常用命令

回顾

参考资料

POST --> Boot Sequence --> Bootloader --> kernel + initramfs(initrd) --> rootfs --> /sbin/init

init:

            CentOS 5:SysV init

            CentOS 6:Upstart

            CentOS 7:Systemd

一、Systemd介绍

1.Systemd新特性

      系统引导时实现服务并行启动

      按需**进程

      系统状态快照

      基于依赖关系定义服务控制逻辑

2.核心概念:unit

配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其它与init相关的信息

            保存至:

                  /usr/lib/systemd/system

                  /run/systemd/system

                  /etc/systemd/system

3.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,文件系统的自动挂载点

      Path unit:.path,用于定义文件系统中的一个文件或目录

4.关键特性

      基于socket的**机制:socket与服务程序分离

      基于bus的**机制

      基于device的**机制

      基于path的**机制

      系统快照:保存各unit的当前状态信息于持久存储设备中

      向后兼容sysv init脚本

            不兼容:

                  systemctl命令固定不变,不像脚本那么灵活可拓展参数

                  非由systemd启动的服务,systemctl无法与之通信

二、管理系统服务

CentOS 7:服务管理通过service unit实现

注意:能兼容早期的服务脚本

1.service命令与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

Systemd

      条件式重启:service name condrestart ==> systemctl try-restart name.service

      重载或重启服务:systemctl reload-or-restart name.service

      重载或条件式重启服务:systemctl reload-or-try-restart name.service

      禁止设定为开机自启:systemctl mask name.service

      取消禁止设定为开机自启:systemctl unmask name.service

      查看某服务当前**与否的状态:systemctl is-active name.service

Systemd

      查看所有已经**的服务:

            systemctl list-units --type service

Systemd

      查看所有服务(包括未**的):

            systemctl list-units --type service --all

Systemd

2.chkconfig命令与systemctl的对应关系

①设定某服务开机自启

chkconfig name on ==> systemctl enable name.service

Systemd

      ②禁止某服务开机自启

chkconfig name off ==> systemctl disable name.service

③查看所有服务的开机自启状态

chkconfig --list ==> systemctl list-unit-files --type service

Systemd

④查看服务是否开机自启

systemctl is-enabled name.service

⑤查看服务的依赖关系

systemctl list-dependencies name.service

Systemd

3.target units

unit配置文件:.target

①运行级别:

     0  ==> runlevel0.target,  poweroff.target

     1  ==> runlevel1.target,  rescue.target

     2  ==> runlevel2.target,  multi-user.target

     3  ==> runlevel3.target,  multi-user.target

     4  ==> runlevel4.target,  multi-user.target

     5  ==> runlevel5.target,  graphical.target

     6  ==> runlevel6.target,  reboot.target

②级别切换:

            init N ==> systemctl isolate name.target

③查看级别:

            runlevel ==> systemctl list-units --type target

Systemd

④获取默认运行级别:

            /etc/inittab ==> systemctl get-default

⑥修改默认级别:

            /etc/inittab ==> systemctl set-default name.target

Systemd

⑦切换至紧急救援模式:

            systemctl rescue

⑧切换至emergency模式:

            systemctl emergency

4.其它常用命令

      关机:systemctl halt、systemctl poweroff

      重启:systemctl reboot

      挂起:systemctl suspend

      快照:systemctl hibernate

      快照并挂起:systemctl hybrid-sleep

回顾

systemd

系统及服务

      unit:

            类型:service, target

                        .service, .target

      systemctl

参考资料:

马哥随堂笔记

注:诚恳欢迎读者对本文提出批评意见,若发现存在错误,我定第一时间修改。如果读者觉得文章对您有帮助,欢迎点赞鼓励一下哟٩(๑❛ᴗ❛๑)۶。