别再手动开机启动!Systemd 一键搞定所有后台服务
在 Windows 系统中我们可以通过services.msc图形界面管理系统服务、设置程序开机自启。而在 LinuxCentOS 7 及以上系统中官方默认采用Systemd作为系统初始化与服务管理框架替代了传统的 SysVinit实现了并行启动、按需加载、统一管理极大提升了系统开机速度与服务稳定性。文章目录一、Systemd 核心概述1.设计初衷2.系统核心进程3.服务与守护进程Daemon核心概念二、Systemd 整体架构三、Systemd Unit 单元类型四、Unit 单元查询命令1.基础单元列表查询2.输出字段释义3.查看单个服务详细状态4.服务状态核心关键字运行状态开机自启状态五、Systemctl 服务管控核心命令实操示例六、unit单元配置文件详解1.配置文件优先级2.标准服务配置文件结构sshd 示例1[ Unit ] 通用配置段2[ Service ] 服务核心配置段3[ Install ] 开机安装配置段七、实战自定义开发 study服务步骤1编写服务执行脚本步骤2创建自定义服务单元文件步骤3重载配置并启动服务步骤4验证服务日志八、总结一、Systemd 核心概述1.设计初衷传统 Linux 初始化机制为串行启动进程依赖复杂、开机耗时长、服务管理零散。Systemd应运而生旨在为 Linux 系统提供一套统一、高效、完整的系统启动与服务管理解决方案。CentOS 7 及以上版本全面基于 Systemd 引导系统核心特性并行启动机制无强依赖的进程并行初始化大幅提速开机按需懒加载进程初始仅做标记注册真正被调用时才完整启动节省系统资源统一管控体系整合系统服务、挂载、定时任务、设备管理等所有系统资源2.系统核心进程Systemd 是用户空间的首个核心进程接管系统所有资源调度用户空间systemdPID 1系统所有进程的父进程内核空间kthreaddPID 2负责内核线程调度3.服务与守护进程Daemon核心概念为方便理解区分两个核心概念服务Service业务层面的抽象概念对外提供的功能能力如 Web 服务、数据库服务守护进程Daemon后台常驻进程是支撑服务运行的具体程序载体通俗示例类比业务Web 服务守护进程httpd业务云计算培训服务守护进程授课老师、课程顾问、运维支撑人员实操演示HTTPD 服务# 安装 Web 服务软件yuminstall-yhttpd# 启动 httpd 服务systemctl start httpd# 查看服务守护进程ps-Chttpd f输出结果可清晰看到httpd系列后台常驻进程即为支撑 Web 服务的守护进程。二、Systemd 整体架构Systemd 架构分为两层分工明确、解耦清晰底层守护进程systemd后台常驻负责所有系统单元的调度、启动、监控、重启上层操作工具systemctl用户交互命令行工具提供所有服务管理操作入口三、Systemd Unit 单元类型Systemd 将系统所有可管理资源抽象为Unit单元不同后缀对应不同资源类型是 Systemd 管理的核心对象。单元类型文件后缀核心作用Service.service系统服务管理最常用如 sshd、httpdSocket.socket进程间通信 Socket 文件管理Target.target模拟系统运行级别用于批量管理服务Timer.timer系统定时任务管理替代 crontabDevice.device内核识别的硬件设备管理Mount.mount文件系统挂载点管理Automount.automount文件系统自动挂载配置Path.path监控文件变动触发服务启动Swap.swap系统交换分区管理Snapshot.snapshot系统快照管理Slice.slice系统资源配额与管控四、Unit 单元查询命令1.基础单元列表查询# 查看已加载的所有单元systemctl list-units# 仅查看定时任务类型单元systemctl list-units-ttimer# 查看所有服务单元包含活跃/非活跃systemctl list-units--typeservice--all# 查看系统所有已安装单元文件包含未加载systemctl list-unit-files# 查看启动失败的服务systemctl--failed--typeservice2.输出字段释义UNIT单元名称LOAD单元配置是否成功加载解析ACTIVE单元高级运行状态总体状态SUB单元细分运行状态详细状态DESCRIPTION单元功能描述3.查看单个服务详细状态systemctl status sshd.service4.服务状态核心关键字运行状态loaded配置文件解析完成已加载至内存active(running)服务正常运行中active(exited)一次性任务执行完成状态正常active(waiting)服务就绪等待触发事件inactive服务未运行/已停止开机自启状态enabled开机自动启动disabled开机不自动启动static无法手动启动依赖其他单元触发五、Systemctl 服务管控核心命令所有服务操作统一通过systemctl实现语法统一、简洁高效。实操示例# 停止 SSH 服务systemctl stop sshd.service# 启动 SSH 服务systemctl start sshd.service# 重启服务业务中断适用于程序更新systemctl restart sshd.service# 重新加载配置业务不中断适用于配置修改systemctl reload sshd.service# 取消开机自启systemctl disable sshd.service# 重启系统验证reboot# 开启开机自启systemctlenablesshd.service# 锁定禁用服务彻底禁止启动systemctl mask sshd.service# 取消禁用systemctl unmask sshd.service六、unit单元配置文件详解1.配置文件优先级unit 服务配置文件分为两个目录自定义配置优先级高于系统默认配置/etc/systemd/system/管理员自定义服务优先级最高/usr/lib/systemd/system/软件包自带默认服务配置2.标准服务配置文件结构sshd 示例所有 .service 文件统一分为[Unit]、[Service]、[Install]三大模块。1[ Unit ] 通用配置段定义服务描述、依赖关系、启动顺序# 标识该部分为 Unit 配置用于描述服务的基本信息、依赖关系等。 [Unit] # 服务的描述信息说明这是 OpenSSH 服务器守护进程便于管理员识别服务用途。 DescriptionOpenSSH server daemon # 指定服务的文档路径这里指向 sshd 命令的手册页man 8 sshd和配置文件的手册页man 5 sshd_config方便用户查阅帮助。 Documentationman:sshd(8) man:sshd_config(5) # 定义服务的启动顺序sshd 服务必须在 network.target网络服务就绪和 sshd-keygen.serviceSSH 密钥生成服务之后启动确保依赖的资源已准备好。 Afternetwork.target sshd-keygen.service # 表示 sshd 服务 希望 sshd-keygen.service 运行但不是强制依赖。如果 sshd-keygen.service 启动失败sshd 仍会尝试启动通常用于生成初始 SSH 密钥若密钥已存在则不影响。 Wantssshd-keygen.service2[ Service ] 服务核心配置段定义服务启动命令、运行模式、重启策略、进程管控规则# 标识该部分为 Service 配置用于定义服务的启动方式、执行命令、重启策略等。 [Service] # 定义服务的类型为 notify表示服务启动后会主动通知 systemd 自己已就绪通过 sd_notify() 函数systemd 会等待这个通知后再继续后续流程确保服务真正可用。 Typenotify # 指定环境变量文件的路径/etc/sysconfig/sshd 中通常定义 OPTIONS 等变量如额外的 sshd 启动参数这些变量会被后续的 ExecStart 引用。 EnvironmentFile/etc/sysconfig/sshd # 服务启动时执行的命令 ExecStart/usr/sbin/sshd -D $OPTIONS # /usr/sbin/sshdsshd 守护进程的可执行文件路径。 # -D表示 sshd 以非守护进程模式运行前台运行因为 systemd 通常管理前台进程便于监控。 # $OPTIONS引用 EnvironmentFile 中定义的额外参数如 -p 2222 指定端口。 # 服务重载配置时执行的命令 ExecReload/bin/kill -HUP $MAINPID # kill -HUP 发送 SIGHUP 信号给 sshd 主进程使其重新加载配置文件无需重启服务。 # $MAINPID 是 systemd 自动维护的服务主进程 ID。 # 定义服务停止时的杀死模式process 表示只杀死服务的主进程sshd 主进程其子进程如已建立的 SSH 连接会被保留避免强制中断现有连接。 KillModeprocess # 定义服务的重启策略当服务因非正常退出如崩溃、信号终止时systemd 会自动重启服务正常退出如主动停止则不重启。 Restarton-failure # 服务重启前的等待时间这里设置为 42 秒避免频繁重启导致资源耗尽。 RestartSec42s3[ Install ] 开机安装配置段定义服务开机启动归属级别# 标识该部分为 Install 配置用于定义服务如何被 启用即系统启动时自动运行。 [Install] # 表示当系统启动到 multi-user.target多用户命令行模式非图形界面时该服务会被自动启动。这是服务器的默认运行级别确保 SSH 服务在系统启动后可用。 WantedBymulti-user.target七、实战自定义开发 study服务本章手动开发一个study自定义守护服务实现每5秒自动写入日志的常驻后台功能。步骤1编写服务执行脚本# 编写后台执行脚本vim/usr/local/bin/study脚本内容#!/bin/bash# 第一行内容是脚本的 解释器声明shebang指定该脚本使用 /bin/bash 作为解释器执行。系统会根据这一行找到对应的 shell 程序来解析后续命令。# 启动一个无限循环while 是循环关键字true 是一个永远为真的条件因此这个循环会一直执行下去直到被外部终止如 CtrlC。whiletrue# 循环体的开始标记do 和后面的 done 之间的内容是循环中重复执行的命令。do# 执行 date 命令获取当前系统时间并通过 $(...) 捕获其输出将结果赋值给变量 DATE。DATE$(date)# echo 命令输出字符串其中 $DATE 会被替换为变量的值# 是追加重定向符号将输出内容追加到 /var/log/study.log 文件中# 最终输出内容类似 Fri Oct 31 10:00:00 CST 2025: IM studying [ Linux ]。echo$DATE: IM studying [ Linux ]/var/log/study.log# 让脚本暂停执行 5 秒sleep 命令用于延迟单位默认为秒避免循环执行过快。sleep5# 循环体的结束标记与前面的 while 和 do 配合标志着一次循环的结束。done赋予脚本执行权限chmodx /usr/local/bin/study步骤2创建自定义服务单元文件# 复制标准服务模板cp/usr/lib/systemd/system/sshd.service /etc/systemd/system/studyd.service# 编辑自定义服务配置vim/etc/systemd/system/study.service精简配置内容[Unit] Descriptionstudy server daemon [Service] ExecStart/usr/local/bin/study [Install] WantedBymulti-user.target步骤3重载配置并启动服务# 重载 systemd 配置识别新服务systemctl daemon-reload# 开机自启并立即启动服务systemctlenablestudy--now# 查看服务运行状态systemctl status study步骤4验证服务日志# 实时查看日志输出tail-f/var/log/study.log日志会每5秒自动刷新证明自定义服务常驻后台运行成功。八、总结Systemd 作为 CentOS 7 主流的系统与服务管理框架统一了 Linux 系统的资源管控方式具备启动快、管理统一、稳定性高、可自定义扩展的优势。熟练掌握systemctl命令、Unit 单元机制、服务配置文件编写、自定义服务开发是 Linux 运维、服务部署、程序常驻后台的核心必备技能。

相关新闻

VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析

VoIP系统的工程实现模型:从信令控制到媒体传输的完整架构解析

随着企业全球化业务的发展,传统电话通信正在向基于互联网协议的通信模式演进。VoIP(Voice over Internet Protocol,网络电话)凭借低成本、高扩展性、全球部署能力等优势,已经成为云通信平台的重要组成部分。对于企业级…

2026/9/23 8:40:01 阅读更多 →
Boxed.AspNetCore.Swagger完全指南:自动生成专业API文档的秘密

Boxed.AspNetCore.Swagger完全指南:自动生成专业API文档的秘密

Boxed.AspNetCore.Swagger完全指南:自动生成专业API文档的秘密 【免费下载链接】Framework .NET Core Extensions and Helper NuGet packages. 项目地址: https://gitcode.com/gh_mirrors/framework8/Framework Boxed.AspNetCore.Swagger是.NET Core生态中一…

2026/9/19 12:32:32 阅读更多 →
2026 WAIC:机器人展示干活能力,应用场景增加但瓶颈仍存

2026 WAIC:机器人展示干活能力,应用场景增加但瓶颈仍存

机器人在WAIC的表现究竟如何?7月18日,一位安徽制造工厂CNC(数控机床加工场景)业务负责人看完机器人搬箱子演示后,询问了几个问题,如节拍能否控制在15秒内、精度范围、续航时间、能否自动换电、负重10公斤能…

2026/9/19 9:13:40 阅读更多 →

最新新闻

RT-Thread 在合宙 Air32F103 开发板上的 BSP 使用指南:快速上手与进阶配置

RT-Thread 在合宙 Air32F103 开发板上的 BSP 使用指南:快速上手与进阶配置

RT-Thread 在合宙 Air32F103 开发板上的 BSP 使用指南:快速上手与进阶配置 【免费下载链接】rt-thread RT-Thread is an open source IoT Real-Time Operating System (RTOS). https://rt-thread.github.io/rt-thread/ 项目地址: https://gitcode.com/gh_mirrors/…

2026/9/23 15:48:23 阅读更多 →
酒店评论情感分析Python实战:从数据清洗到模型调优全流程

酒店评论情感分析Python实战:从数据清洗到模型调优全流程

简介:面向Python课程期末大作业与情感分析入门的一项酒店评论情感分析完整项目,源码本地编译可运行,评审分达95分以上,难度适中且经助教审定,可作为课程设计参考或结课作业模板。压缩包共23个文件、约4.36MB&#xff1…

2026/9/23 15:48:23 阅读更多 →
开题报告文献综述生成工具测评:4款打分对比

开题报告文献综述生成工具测评:4款打分对比

引言:开题季的文献综述难题 开题报告写作季,大量研究生面临文献综述无从下手的困境。本文选取四款主流辅助工具进行实测评分,从生成质量、降重能力、图表处理等多个维度打分,帮助读者找到适配自身需求的产品。测评围绕AI写作工具…

2026/9/23 15:48:23 阅读更多 →
Phoenix 预置 Evaluators 完全指南:LLM 评判器与代码评判器的选型、调用与落地验证

Phoenix 预置 Evaluators 完全指南:LLM 评判器与代码评判器的选型、调用与落地验证

可观测性AI 评测LLMOpsAI 应用人工智能 【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix 点击查看 免费下载 本篇技术指南围绕 Arize Phoenix 提供的预置(Pre-Built&#xff0…

2026/9/23 15:48:23 阅读更多 →
IronClaw 权威词汇层 ironclaw_host_api:零依赖契约 crate 的工作规则、密封证据与安全边界解析

IronClaw 权威词汇层 ironclaw_host_api:零依赖契约 crate 的工作规则、密封证据与安全边界解析

人工智能AI 应用交互助手AI Agent 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw 点击查看 免费下载 ironclaw_host_api 是 IronClaw(一个…

2026/9/23 15:48:23 阅读更多 →
全大核速查手册:5分钟搞定版本升级API变更痛点

全大核速查手册:5分钟搞定版本升级API变更痛点

全大核速查手册:5分钟搞定版本升级API变更痛点 版本升级后 API 全变了,文档像天书,代码跑不起来?别慌,这份【全大核】速查手册就是为你准备的救命稻草。 入口定位:为什么你的代码在升级后崩溃…

2026/9/23 15:47:23 阅读更多 →

日新闻

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A…

2026/9/23 0:00:23 阅读更多 →
2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我

2k显示屏性能优化踩坑:版本升级后API全变了,这份源码解析救了我 刚把开发环境的显示器从1080P换到2K,跑老项目直接报错,版本升级后 API…

2026/9/23 0:01:25 阅读更多 →
3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点

3步搞定美眉图实战项目,告别官方文档抓不住重点 官方文档翻了三遍还是云里雾里?别急,美眉图在实战项目中常被用来做数据可视化,但它的原理比你想的简单。今天咱们直接上手,用一个完整的小项目把美眉图跑通,不再死磕那些冗长的理论说明。…

2026/9/23 0:01:25 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/23 4:55:02 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/23 4:49:06 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/23 9:53:41 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/23 9:53:40 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/23 9:53:40 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/23 9:53:40 阅读更多 →