千家信息网

Centos7之Systemd知识简要备忘录

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Systemd:Systemd 是 Linux 系统中最新的初始化系统(init)概要解释参考:https://www.ibm.com/developerworks/cn/linux/1407_liu
千家信息网最后更新 2026年10月31日Centos7之Systemd知识简要备忘录


Systemd:Systemd 是 Linux 系统中最新的初始化系统(init)

概要解释参考:https://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html

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

init:

CentOS 5: SysV init

CentOS 6: Upstart

CentOS 7: Systemd

为了减少系统启动时间,systemd 的目标是:

尽可能启动更少的进程

尽可能将更多进程并行启动


Systemd新特性:

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

按需激活进程;

系统状态快照;

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





systemd 自带日志服务 journald,该日志服务的设计初衷是克服现有的 syslog 服务的缺点


核心概念:unit

单元的概念

系统初始化需要做的事情非常多。需要启动后台服务,比如启动 SSHD 服务;需要做配置工作,比如挂载文件系统。这个过程中的每一步都被 systemd 抽象为一个配置单元,

即 unit。可以认为一个服务是一个配置单元;一个挂载点是一个配置单元;一个交换分区的配置是一个配置单元;等等。systemd 将配置单元归纳为以下一些不同的类型。

每个配置单元都有一个对应的配置文件,系统管理员的任务就是编写和维护这些不同的配置文件,比如一个 MySQL 服务对应一个 mysql.service 文件。这种配置文件的语法非常简单,用户不需要再编写和维护复杂的系统脚本了。

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

当 systemd 以系统实例(--system)运行时,加载单元的先后顺序(较前的目录优先级较高):

系统单元目录 描述

/etc/systemd/system 本地配置的系统单元

/run/systemd/system 运行时配置的系统单元

/usr/lib/systemd/system 软件包安装的系统单元



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,用于定义文件系统中的一个文件或目录;






管理系统服务:

CentOS 7: service unit

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


命令: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

条件式重启: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

查看所有已经激活的服务:

systemctl list-units --type service

查看所有服务:

systemctl list-units --type service --all


chkconfig命令的对应关系:

设定某服务开机自启:chkconfig name on ==> systemctl enable name.service

禁止:chkconfig name off ==> systemctl disable name.service

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

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

查看服务是否开机自启:systemctl is-enabled name.service


其它命令:

查看服务的依赖关系:systemctl list-dependencies name.service


Target 和运行级别

systemd 用目标(target)替代了运行级别的概念,提供了更大的灵活性


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


(对systemd来说运行级别2,3,4没有区别)


Centos7不建议使用:runlevel命令


级别切换:

init N ==> systemctl isolate name.target (.target不可省略)


查看级别:

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


获取默认运行级别:

/etc/inittab ==> systemctl get-default


修改默认级别:

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


切换至紧急救援模式:

systemctl rescue


切换至emergency模式:

systemctl emergency

(emergency:驱动不加载,系统不做初始化,服务不启动)


其它常用命令:

关机:systemctl halt、systemctl poweroff

重启:systemctl reboot

挂起:systemctl suspend

快照:systemctl hibernate

快照并挂起:systemctl hybrid-sleep





系统 服务 配置 文件 单元 级别 运行 命令 快照 状态 进程 标识 概念 激活 目录 切换 管理 不同 尽可能 条件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 互联网最新的科技 互联网科技财经 嘟嘟瓜互联网科技 甘肃拓世互联网科技有限公司 互联网科技中介 互联网企业和科技型企业 互联网科技教育视频 来此购互联网科技有限公司 链环科技传统企业怎么转型互联网 烟台灵鸽互联网科技有限公司 众安科技工业互联网合作 合肥互联网科技公司公章图片 容联科技互联网电商 上海万顺科技互联网有限公司招聘 第三届互联网大会安防黑科技 互联网科技创新创业项目 上海旺乐尼互联网科技有限公司 互联网科技创新方面的资料 六子台科技互联网展会 互联网科技大会 科技类的互联网平台 青海省互联网新科技 湖南洣水互联网科技有限公司扣款 阿里互联网科技公司 互联网经济与金融科技 昭通互联网科技选哪家 呼和浩特新华互联网科技学院 深圳市罗太互联网科技有限公司 六子台科技互联网展会
0