尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

掌握Linux服务管理:systemd全面指南

掌握Linux服务管理:systemd全面指南
📅 发布时间:2026/7/23 4:23:41

Linux 服务管理

systemd 介绍

基本概念

CentOS 7 使用 Systemd 引导系统启动,速度最快,所有进程无论有无依赖关系则都是并行启动(很多时候进程没有真正启动而是只有一个信号或者说是标记而已,在真正利用的时候才会真正启动)。Systemd为了解决上文的问题而诞生。它的目标是,为系统的启动和管理提供一套完整的解决方案。

系统引导程序:

  1. 用户空间,systemd,pid为1
  2. 内核空间,kthreadd,pid为2

服务:从业务角度来称呼,例如 web 服务,数据库服务。

守护进程(daemon):web 服务器对外提供 web 服务,由 web 相关的进程提供支持。

以web服务为例:

  • 服务:web服务
  • 守护进程:httpd

systemd 架构

守护进程:systemd,由守护进程干活。

工具:systemctl,提供给用户要、用来跟机器交互的工具。

unit 类型

systemctl 命令用于管理不同类型的系统对象,这些对象称之为units。

  • Service unit:用于定义系统服务,文件扩展名为**.service**,例如httpd.service
  • Socket unit:用于标识进程间通信用的 socket文件,文件扩展名为.socket
  • Target unit:用于模拟实现“运行级别”,文件扩展名为.target
  • Timer unit:用于管理计划任务,文件扩展名为.timer
  • Device unit:用于定义内核识别的设备,文件扩展名为.device
  • Mount unit:用于定义文件系统挂载点,文件扩展名为.mount
  • Snapshot unit:管理系统快照,文件扩展名为.snapshot
  • Swap unit:用于标识swap设备,文件扩展名为.swap
  • Automount unit:文件系统的自动挂载点,文件扩展名为.automount
  • Path unit:用于根据文件系统上特定对象的变化来启动其他服务,文件扩展名为.path
  • Slice unit:用于资源管理,文件扩展名为.slice

查看单个 unit 信息

[root@centos7 ~19:23:23]# systemctl status httpd.service● httpd.service - The Apache HTTP Server Loaded: loaded(/usr/lib/systemd/system/httpd.service;disabled;vendor preset: disabled)Active: active(running)since Wed2026-07-2219:23:23 CST;2s ago Docs: man:httpd(8)man:apachectl(8)Main PID:3769(httpd)...
关键字概述
loaded单元配置文件已处理
active(running)正在运行
active(exited)已成功完成一次性配置
active(waiting)运行中,正在等待事件
inactive不再运行
enabled系统引导时启动
disabled系统引导时不启动
static无法启动,依赖其他单元启动
# 安装软件包[root@centos7 ~17:05:10]# yum install -y httpd# 启动服务[root@centos7 ~17:45:50]# systemctl start httpd# 查看进程[root@centos7 ~17:49:16]# ps -C httpd fPID TTY STAT TIME COMMAND3663? Ss0:00 /usr/sbin/httpd-DFOREGROUND3682? S0:00\_ /usr/sbin/httpd-DFOREGROUND3683? S0:00\_ /usr/sbin/httpd-DFOREGROUND3684? S0:00\_ /usr/sbin/httpd-DFOREGROUND3685? S0:00\_ /usr/sbin/httpd-DFOREGROUND3686? S0:00\_ /usr/sbin/httpd-DFOREGROUND

控制系统服务

# 停止服务[root@centos7 ~18:53:10]# systemctl stop sshd.service# 客户端连接测试[root@centos7 ~18:53:26]# ssh csr@centos7 hostnamessh: Could not resolvehostnamecentos7: Name orservicenot known# 启动服务[root@centos7 ~18:54:10]# systemctl start sshd.service# 客户端连接测试[root@centos7 ~18:54:39]# ssh csr@centos7 hostnamessh: Could not resolvehostnamecentos7: Name orservicenot know# 重启服务,相当于stop再start[root@centos7 ~18:57:46]# systemctl restart sshd.service# 一般用于配置文件变动后,重新加载# 重新加载服务,服务对应的主进程不会重启,只会重新加载一次配置文件。[root@centos7 ~18:58:03]# systemctl reload sshd.service# 禁止服务开机自启[root@centos7 ~18:58:08]# systemctl disable sshd.serviceRemoved symlink /etc/systemd/system/multi-user.target.wants/sshd.service.[root@centos7 ~18:58:39]# systemctl is-enabled sshddisabled# 重启系统验证[root@centos7 ~18:58:51]# reboot# 设置服务开机自启[root@centos7 ~19:07:46]# systemctl enable sshd.service[root@centos7 ~19:09:31]# systemctl is-enabled sshdenabled[root@centos7 ~19:09:43]# reboot# 禁用服务:服务被禁用后,将无法start,因为服务的配置文件指向/dev/null[root@centos7 ~19:10:19]# systemctl mask sshd.serviceCreated symlink from /etc/systemd/system/sshd.service to /dev/null.[root@centos7 ~19:10:39]# systemctl start sshd.serviceFailed to start sshd.service: Unit is masked.[root@centos7 ~19:11:03]## 取消禁用[root@centos7 ~19:11:12]# systemctl unmask sshd.serviceRemoved symlink /etc/systemd/system/sshd.service.[root@centos7 ~19:11:26]# systemctl start sshd.service[root@centos7 ~19:11:29]#[root@centos7 ~19:12:48]# systemctl status sshd.service● sshd.service - OpenSSH server daemon Loaded: loaded(/usr/lib/systemd/system/sshd.service;enabled;vendor preset: enabled)Active: active(running)since Wed2026-07-2219:07:07 CST;5min ago Docs: man:sshd(8)man:sshd_config(5)Main PID:1067(sshd)CGroup: /system.slice/sshd.service └─1067 /usr/sbin/sshd-D...

unit 配置文件

unit 配置文件存放在多个位置:

  • /etc /systemd/system/unit.service,优先生效。一般是管理员自定义的配置。
  • /usr/lib /systemd/system/unit.service,其次生效。软件包自带的默认配置。

配置文件说明

示例单元文件/usr/lib/systemd/system/sshd.service说明

# 标识该部分为 Unit 配置,用于描述服务的基本信息、依赖关系等。[Unit]# 服务的描述信息,说明这是 "OpenSSH 服务器守护进程",便于管理员识别服务用途。Description=OpenSSH server daemon# 指定服务的文档路径,这里指向 sshd 命令的手册页(man 8 sshd)和配置文件的手册页(man 5 sshd_config),方便用户查阅帮助。Documentation=man:sshd(8)man:sshd_config(5)# 定义服务的启动顺序:sshd 服务必须在 network.target(网络服务就绪)和 sshd-keygen.service(SSH 密钥生成服务)之后启动,确保依赖的资源已准备好。After=network.target sshd-keygen.service# 表示 sshd 服务 "希望" sshd-keygen.service 运行(但不是强制依赖)。如果 sshd-keygen.service 启动失败,sshd 仍会尝试启动(通常用于生成初始 SSH 密钥,若密钥已存在则不影响)。Wants=sshd-keygen.service# 标识该部分为 Service 配置,用于定义服务的启动方式、执行命令、重启策略等。[Service]# 定义服务的类型为 notify:表示服务启动后会主动通知 systemd 自己已就绪(通过 sd_notify() 函数),systemd 会等待这个通知后再继续后续流程,确保服务真正可用。Type=notify# 指定环境变量文件的路径,/etc/sysconfig/sshd 中通常定义 OPTIONS 等变量(如额外的 sshd 启动参数),这些变量会被后续的 ExecStart 引用。EnvironmentFile=/etc/sysconfig/sshd# 服务启动时执行的命令:ExecStart=/usr/sbin/sshd-D$OPTIONS# /usr/sbin/sshd:sshd 守护进程的可执行文件路径。# -D:表示 sshd 以非守护进程模式运行(前台运行),因为 systemd 通常管理前台进程,便于监控。# $OPTIONS:引用 EnvironmentFile 中定义的额外参数(如 -p 2222 指定端口)。# 服务重载配置时执行的命令:ExecReload=/bin/kill-HUP$MAINPID# kill -HUP 发送 SIGHUP 信号给 sshd 主进程,使其重新加载配置文件(无需重启服务)。# $MAINPID 是 systemd 自动维护的服务主进程 ID。# 定义服务停止时的杀死模式:process 表示只杀死服务的主进程(sshd 主进程),其子进程(如已建立的 SSH 连接)会被保留(避免强制中断现有连接)。KillMode=process# 定义服务的重启策略:当服务因非正常退出(如崩溃、信号终止)时,systemd 会自动重启服务;正常退出(如主动停止)则不重启。Restart=on-failure# 服务重启前的等待时间,这里设置为 42 秒,避免频繁重启导致资源耗尽。RestartSec=42s# 标识该部分为 Install 配置,用于定义服务如何被 "启用"(即系统启动时自动运行)。[Install]# 表示当系统启动到 multi-user.target(多用户命令行模式,非图形界面)时,该服务会被自动启动。这是服务器的默认运行级别,确保 SSH 服务在系统启动后可用。WantedBy=multi-user.target

开发一个 study 服务

  1. 开发 studyd 服务主程序 study

脚本说明:这是一个无限循环的脚本,每 5 秒会向/var/log/study.log文件中追加一行包含当前时间的日志,内容为[时间]: I'M studying [ Linux ]。

[root@centos7 ~15:01:51]# vim /usr/local/bin/study#!/bin/bashwhiletruedoDATE=$(date)echo"$DATE: I'm studying [ Linux ]">>/var/log/study.logsleep5done[root@centos7 ~15:09:06]# chmod +x /usr/local/bin/study
  1. 创建 studyd 服务单元文件
[root@centos7 ~15:09:28]# cp /usr/lib/systemd/system/sshd.service \>/etc/systemd/system/studyd.service[root@centos7 ~15:11:55]# vim /etc/systemd/system/studyd.service[root@centos7 ~15:15:08]# systemctl daemon-reload[root@centos7 ~15:15:56]# systemctl enable studyd.service --nowCreated symlink from /etc/systemd/system/multi-user.target.wants/studyd.service to /etc/systemd/system/studyd.service.[root@centos7 ~15:16:26]#[root@centos7 ~15:17:14]# systemctl status studyd.service● studyd.service - study server daemon Loaded: loaded(/etc/systemd/system/studyd.service;enabled;vendor preset: disabled)Active: active(running)since Wed2026-07-2215:16:26 CST;1min 0s ago Main PID:4784(study)Tasks:2CGroup: /system.slice/studyd.service ├─4784 /bin/bash /usr/local/bin/study └─4829sleep5Jul2215:16:26 centos7.cheng.cloud systemd[1]: Started study server daemon.[root@centos7 ~15:17:26]#[root@centos7 ~15:17:48]#[root@centos7 ~15:17:48]# tail -f /var/lolocal/ lock/ log/
  1. 验证日志
[root@centos7 ~15:17:48]# tail -f /var/log/study.logWed Jul2215:17:21 CST2026: I'm studying [ Linux ] Wed Jul 22 15:17:26 CST 2026: I'm studying[Linux]Wed Jul2215:17:31 CST2026: I'm studying [ Linux ] Wed Jul 22 15:17:36 CST 2026: I'm studying[Linux]Wed Jul2215:17:41 CST2026: I'm studying [ Linux ] Wed Jul 22 15:17:46 CST 2026: I'm studying[Linux]...

相关新闻

  • 使用de4dot与dnSpy进行.NET程序集反混淆与逆向分析实战指南
  • Linux 7.2内核图形性能实测:帧率最高提升12% 光线追踪提升1%
  • 暑期狂欢,畅玩一夏!ToDesk远程游戏功能无门槛使用介绍

最新新闻

  • Claude Code技术解析:AI编程助手的安装与实战应用
  • Godot脚本语言全解析:GDScript、C#与扩展语言选型指南
  • 2026 年至今,石景山有实力的不锈钢低温储罐回收订制厂家有哪些,揭秘:低温储罐回收的隐藏高价秘密-博奥特新能源科技 - 企业推荐管【认证】
  • LeetCode 第3题《无重复字符的最长子串》笔记
  • LM3S2965定时器与看门狗寄存器深度解析与实战避坑指南
  • 欧米茄保养价格查询|全部地址与售后服务电话权威信息公告(2026年7月最新) - 欧米茄官方服务中心

日新闻

  • 亨得利盐城维修点在哪里?手表维修保养地址指南**公示(2026年7月最新) - 亨得利官方
  • 提升.NET API安全性:Boxed.AspNetCore.Swagger认证授权最佳实践
  • 帝舵佛山**网点地址更新:2026年7月售后热线电话与服务客户指南 - 帝舵中国官方服务中心

周新闻

  • SaaS软件行业GEO实践:AI搜索时代的品牌可见性与获客新路径
  • 什么是PCTFE?医药高端包装的“防潮王牌“材料
  • 【JVM调优实战】16-可视化利器-JConsole-VisualVM-JMC

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号