当前位置: 首页 > news >正文

Linux systemd 系统管理:systemctl 控制服务与守护进程

Linux systemd 系统管理:systemctl 控制服务与守护进程

在这里插入图片描述

系统启动过程

Linux 系统的启动过程遵循以下步骤:

  1. 开机自检:计算机启动后,BIOS/UEFI 进行硬件自检,确认硬件设备正常
  2. MBR 引导:从指定的启动设备读取主引导记录 (MBR),启动引导程序
  3. GRUB 菜单:显示引导菜单,用户可选择要启动的操作系统内核
  4. 加载 Linux 内核:内核被加载到内存中并开始初始化
  5. 运行 systemd:启动 systemd 进程 (PID=1),作为所有进程的父进程,负责后续系统初始化

一、systemd 简介

systemd 是 Linux 系统的系统和服务管理器,具有以下特点:

  • 采用并行启动方式,提高系统启动速度
  • 负责管理系统启动和服务器进程
  • 能够在启动时和运行中的系统上激活系统资源、服务器守护进程和其他进程

守护进程是指在后台等待或运行以执行各种任务的程序,一个或多个守护进程共同负责系统上的某个服务。

2、Systemd 的新功能

  • 并行化功能:可以同时启动多个服务,提高系统启动速度
  • 按需启动守护进程:不需要预先启动单独的服务,可在需要时再启动
  • 自动服务依赖关系管理:能够处理服务间的依赖关系,例如在网络不可用时不启动依赖网络的服务,防止长时间超时
  • 利用 Linux 控制组:通过控制组追踪相关进程,便于管理和监控

二、systemctl 管理 systemd 单元

1、单元类型

使用systemctl -t help可以查看所有单元类型:

[root@zhang3 ~]# systemctl -t help
Available unit types:
service
socket
busname
target
snapshot
device
mount
automount
swap
timer
path
slice
scope

2、列出单元

  • systemctl:查看系统启动时所有单元的状态
  • systemctl list-unit-files:查看系统中所有单元及当前状态
  • systemctl --type=service:只显示服务单元类型的状态
  • systemctl list-units --type=service:列出所有已加载且处于活动状态的服务单元
  • systemctl list-unit-files | grep service:筛选出所有服务单元

查询服务状态的命令:

  • systemctl is-active 服务名:查询具体某个服务是否处于激活状态
  • systemctl is-enabled 服务名:查询具体某个服务下次启动的状态

3、查看服务状态

systemctl status chronyd:以chronyd服务为例,查看 chronyd 服务的详细状态,包括运行状态、进程 ID、最近日志等信息

[root@zhang3 system]# systemctl status chronyd
● chronyd.service - NTP client/serverLoaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)Active: active (running) since 三 2025-08-06 15:15:53 CST; 24min agoDocs: man:chronyd(8)man:chrony.conf(5)Process: 10975 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)Process: 10971 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 10973 (chronyd)Tasks: 1CGroup: /system.slice/chronyd.service└─10973 /usr/sbin/chronyd8月 06 15:15:53 zhang3.example.com systemd[1]: Starting NTP client/server...
8月 06 15:15:53 zhang3.example.com chronyd[10973]: chronyd version 3.2 startin...
Hint: Some lines were ellipsized, use -l to show in full.

4、启动和停止服务

  • systemctl start chronyd:启动 chronyd 服务
  • systemctl stop chronyd:停止 chronyd 服务
  • systemctl restart chronyd:重新启动 chronyd 服务
  • systemctl reload chronyd:重新加载 chronyd 服务的配置文件

示例说明

  • systemctl restart NetworkManager:重启网络管理服务,过程是先关闭服务,再重新加载新的配置文件,最后启动服务
  • systemctl reload NetworkManager:重新加载网络管理服务的配置文件,不会断开服务,直接应用新配置

5、启用和禁用服务

在系统启动时,服务是否会自动启动取决于 systemd 配置目录中是否存在该服务的链接文件:

  • 启用服务:systemctl enable chronyd,会在 systemd 的配置目录中创建该服务的链接文件,使服务在系统启动时自动启动
  • 禁用服务:systemctl disable chronyd,会删除 systemd 配置目录中该服务的链接文件,使服务在系统启动时不会自动启动

6、屏蔽服务

系统中有些服务同时启动可能产生冲突,为了防止管理员意外启动这些冲突的服务,可以屏蔽服务:

  • 屏蔽服务:systemctl mask chronyd
  • 解除屏蔽:systemctl unmask chronyd

屏蔽服务会创建一个指向 /dev/null 的符号链接,阻止服务被启动,比禁用服务更严格。

通过上述命令和功能,systemd 提供了一套完整的系统和服务管理机制,使得管理员能够方便地控制系统服务的生命周期和运行状态。

http://www.lryc.cn/news/612478.html

相关文章:

  • 深入理解 qRegisterMetaType<T>()
  • 【数据可视化-82】中国城市幸福指数可视化分析:Python + PyEcharts 打造炫酷城市幸福指数可视化大屏
  • JAVA算法练习题day9
  • 蓝桥杯----锁存器、LED、蜂鸣器、继电器、Motor
  • Pytest项目_day06(requests中Session的用法)
  • Python 进行点云ICP(lterative Closest Point)配准(精配准)
  • Java高频方法总结
  • 实习文档背诵
  • chdir系统调用及示例
  • docker启动出现Error response from daemon: Container的问题【已解决】
  • 92、【OS】【Nuttx】【构建】cmake 支持构建的目标
  • InfluxDB 集群部署与高可用方案(二)
  • 【概念学习】深度学习有何不同
  • 敏捷协作平台推荐:Jira、PingCode、Tapd等15款
  • iptables相关知识笔记
  • AI+物理融合新范式:物理信息神经网络(PINN)的深度研究报告
  • Flash Attention与SDPA
  • 深度探索:非静态内部类不能定义 static 成员属性和方法 及 静态内部类的必要性
  • AI Infra与LLM的联系与差异
  • ICCV 2025 | 视频生成迈入“多段一致”新时代!TokensGen用“压缩Token”玩转长视频生成
  • 【java】DDD架构同普通微服务项目的区别
  • 低代码系统的技术深度:超越“可视化操作”的架构与实现挑战
  • MCU编程中的临界资源及临界区
  • 【51单片机2个独立按键2个独立数码管静态显示内容自定】2022-10-22
  • 从 0 到 1 创建 InfluxDB 3 表:标签、字段、命名规范一篇讲透
  • 无人机航拍数据集|第4期 无人机太阳光伏板红外目标检测YOLO数据集10945张yolov11/yolov8/yolov5可训练
  • 无人机图传的得力助手:5G 便携式多卡高清视频融合终端的协同应用
  • ⭐CVPR 文本到 3D 场景生成新突破:Prometheus 框架解析
  • 小实验--继电器定时开闭
  • Pytest项目_day04(Python做接口请求)