Linux 服务管理深度拆解|systemd、systemctl 与 Unit 配置全解
Linux 服务管理windows 开机的时候有些程序自动启动了。命令行运行services.mscsystemd 介绍基本概念CentOS 7 使用 Systemd 引导系统启动速度最快所有进程无论有无依赖关系则都是并行启动很多时候进程没有真正启动而是只有一个信号或者说是标记而已在真正利用的时候才会真正启动。Systemd为了解决上文的问题而诞生。它的目标是为系统的启动和管理提供一套完整的解决方案。系统引导程序用户空间systemdpid为1内核空间kthreaddpid为2服务从业务角度来称呼例如 web 服务数据库服务。守护进程daemonweb 服务器对外提供 web 服务由 web 相关的进程提供支持。以web服务为例服务web服务守护进程httpd万和提供培训服务服务万培训云计算守护进程课程顾问、代课老师、就业老师等。例如# 安装软件包 [rootcentos7 ~ 19:04:32]# yum install -y httpd # 启动服务 [rootcentos7 ~ 19:05:18]# systemctl start httpd # 查看进程 [rootcentos7 ~ 19:05:47]# ps -C httpd f PID TTY STAT TIME COMMAND 5271 ? Ss 0:00 /usr/sbin/httpd -DFOREGROUND 5288 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 5289 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 5290 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 5291 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUND 5292 ? S 0:00 \_ /usr/sbin/httpd -DFOREGROUNDhttpd 服务对应的守护进程是5271、5288…systemd 架构守护进程systemd由守护进程干活。工具systemctl提供给用户要、用来根机器交互的工具。unit 类型systemctl 命令用于管理不同类型的系统对象这些对象称之为units。Service unit用于定义系统服务文件扩展名为**.service** 例如httpd.serviceSocket unit用于标识进程间通信用的 socket文件文件扩展名为.socketTarget unit用于模拟实现“运行级别”文件扩展名为.targetTimer unit用于管理计划任务文件扩展名为.timerDevice unit用于定义内核识别的设备文件扩展名为.deviceMount unit用于定义文件系统挂载点文件扩展名为.mountSnapshot unit管理系统快照文件扩展名为.snapshotSwap unit用于标识swap设备文件扩展名为.swapAutomount unit文件系统的自动挂载点文件扩展名为.automountPath unit用于根据文件系统上特定对象的变化来启动其他服务文件扩展名为.pathSlice unit用于资源管理文件扩展名为.slice查看 unit 列表信息# 列出状态为loaded units [rootcentos7 ~ 19:06:23]# systemctl list-unitssystemctl list-units命令输出说明UNIT服务单元名称。LOADsystemd是否正确解析了单元的配置并将该单元加载到内存中。ACTIVE单元的高级别激活状态。此信息表明单元是否已成功启动。SUB单元的低级别激活状态。此信息指示有关该单元的更多详细信息。信息视单元类型、 状态以及单元的执行方式而异。DESCRIPTION单元的简短描述。# -t选项查看特定类型unit 清单 [dengcentos7 ~ 19:07:55]$ systemctl list-units -t timer UNIT LOAD ACTIVE SUB DESCRIPTION systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories unbound-anchor.timer loaded active waiting daily update of the root trust anchor for DNSSEC LOAD Reflects whether the unit definition was properly loaded. ACTIVE The high-level unit activation state, i.e. generalization of SUB. SUB The low-level unit activation state, values depend on unit type. 2 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use systemctl list-unit-files. # 列出类型为service状态为active和inactive unit [rootcentos7 ~ 19:09:12]# systemctl list-units --type service --all # 列出系统中所有unit包括未loaded的unit [rootcentos7 ~ 19:10:38]# systemctl list-unit-files # 查看失败的服务 [rootcentos7 ~ 19:11:05]# systemctl --failed --type service查看单个 unit 信息[dengcentos7 ~ 19:12:44]$ 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 三 2026-07-22 17:37:45 CST; 5h 50min ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 1167 (sshd) Tasks: 1 CGroup: /system.slice/sshd.service └─1167 /usr/sbin/sshd -D ......关键字概述loaded单元配置文件已处理active(running)正在运行active(exited)已成功完成一次性配置active(waiting)运行中正在等待事件inactive不再运行enabled系统引导时启动disabled系统引导时不启动static无法启动依赖其他单元启动控制系统服务命令任务systemctl statusUNIT查看单元状态的详细信息。systemctl stopUNIT在运行中的系统上停止一项服务。systemctl startUNIT在运行中的系统上启动一项服务。systemctl restartUNIT在运行中的系统上重新启动一项服务。systemctl reloadUNIT重新加载运行中服务的配置文件。systemctl maskUNIT禁用服务使其无法手动启动或在系统引导时启动。systemctl unmaskUNIT使屏蔽的服务变为可用。systemctl enableUNIT将服务配置为在系统引导时启动。使用--now选项也会启动该服务。systemctl disableUNIT禁止服务在系统引导时启动。使用--now选项也会停止该服务。# 停止服务 [rootcentos7 ~ 19:14:21]# systemctl stop sshd.service # 客户端连接测试 [rootcentos7 ~ 19:14:56]# ssh dengcentos7 hostname # 启动服务 [rootcentos7 ~ 19:15:22]# systemctl start sshd.service # 客户端连接测试 [rootcentos7 ~ 19:15:48]# ssh dengcentos7 hostname # 重启服务相当于stop再start [rootcentos7 ~ 19:16:15]# systemctl restart sshd.service # 一般用于配置文件变动后重新加载 [rootcentos7 ~ 19:16:43]# systemctl reload sshd.service # 重新加载服务服务对应的主进程不会重启只会重新加载一次配置文件。 # 禁止服务开机自启 [rootcentos7 ~ 19:17:09]# systemctl disable httpd.service # 允许服务开机自启 [rootcentos7 ~ 19:17:35]# systemctl enable httpd.service # 查看服务是否开机自启 [rootcentos7 ~ 19:18:02]# systemctl is-enabled httpd.service enabled # 查看服务是否正在运行 [rootcentos7 ~ 19:18:28]# systemctl is-active httpd.service active # 屏蔽服务禁止启动 [rootcentos7 ~ 19:18:54]# systemctl mask httpd.service # 取消屏蔽 [rootcentos7 ~ 19:19:21]# systemctl unmask httpd.serviceunit 配置文件配置文件说明systemd 单元配置文件通常位于以下目录/usr/lib/systemd/system/软件包安装的单元文件不要修改/etc/systemd/system/管理员创建或修改的单元文件优先使用/run/systemd/system/运行时生成的临时单元文件配置文件结构[Unit] Description描述信息 Afternetwork.target Wantsnetwork.target [Service] Typesimple ExecStart/path/to/executable Restartalways Userdeng Groupdeng [Install] WantedBymulti-user.target段说明[Unit]定义单元的元数据和依赖关系[Service]服务单元的配置仅适用于.service文件[Install]定义单元的安装信息开发一个 study 服务创建一个自定义服务实现每隔1秒向日志文件写入一条消息。# 创建脚本 [dengcentos7 ~ 19:20:47]$ cat /usr/local/bin/study.sh EOF #!/bin/bash while true do echo $(date): Im studying Linux service management /var/log/study.log sleep 1 done EOF [dengcentos7 ~ 19:21:14]$ chmod x /usr/local/bin/study.sh # 创建服务配置文件 [rootcentos7 ~ 19:21:40]# cat /etc/systemd/system/study.service EOF [Unit] DescriptionStudy Service Afternetwork.target [Service] Typesimple ExecStart/usr/local/bin/study.sh Restartalways Userdeng Groupdeng [Install] WantedBymulti-user.target EOF # 重新加载systemd配置 [rootcentos7 ~ 19:22:06]# systemctl daemon-reload # 启动服务 [rootcentos7 ~ 19:22:33]# systemctl start study.service # 查看服务状态 [rootcentos7 ~ 19:22:59]# systemctl status study.service ● study.service - Study Service Loaded: loaded (/etc/systemd/system/study.service; disabled; vendor preset: enabled) Active: active (running) since 三 2026-07-22 19:22:33 CST; 26s ago Main PID: 12345 (study.sh) Tasks: 2 CGroup: /system.slice/study.service ├─12345 /bin/bash /usr/local/bin/study.sh └─12367 sleep 1 # 查看日志 [dengcentos7 ~ 19:23:25]$ tail -f /var/log/study.log 2026年 07月 22日 星期三 19:22:33 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:34 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:35 CST: Im studying Linux service management ...... # 设置开机自启 [rootcentos7 ~ 19:24:01]# systemctl enable study.service # 停止服务 [rootcentos7 ~ 19:24:28]# systemctl stop study.service验证日志[dengcentos7 ~ 19:25:04]$ cat /var/log/study.log 2026年 07月 22日 星期三 19:22:33 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:34 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:35 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:36 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:37 CST: Im studying Linux service management ...... studying Linux service management 2026年 07月 22日 星期三 19:22:34 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:35 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:36 CST: Im studying Linux service management 2026年 07月 22日 星期三 19:22:37 CST: Im studying Linux service management ......

相关新闻

Grok AI助手开发实战:从接入到项目集成的完整指南

Grok AI助手开发实战:从接入到项目集成的完整指南

如果你正在关注 AI 助手领域,最近一定被 Elon Musk 旗下 xAI 发布的 Grok 刷屏了。各种宣传都在强调它的“幽默感”和“实时信息获取能力”,但作为一个开发者,你真正关心的问题可能是:这个号称“可靠的多面手”的 Grok&#xff0c…

2026/10/13 3:43:29 阅读更多 →
Astryx:AI就绪设计系统如何解决React开发中的Agent协作痛点

Astryx:AI就绪设计系统如何解决React开发中的Agent协作痛点

上周在翻看 React 生态的新动向时,一个名字引起了我的注意:Meta 开源的 Astryx。第一眼看到“150 无障碍组件”“七种主题”和“CLI”这几个关键词时,我下意识以为这又是一个常规的设计系统发布。但真正让我停下鼠标的,是最后那个…

2026/10/8 17:21:45 阅读更多 →
Kimi K3与Qwen 3.8开源大模型技术解析与实战部署指南

Kimi K3与Qwen 3.8开源大模型技术解析与实战部署指南

Kimi K3、Qwen 3.8 发布:开源大模型性能接近 Anthropic Fable 5 的完整技术解析与实战指南最近大模型领域迎来重要更新,Kimi K3 和 Qwen 3.8 的发布引起了广泛关注。这两款开源模型在多项基准测试中表现优异,性能接近 Anthropic 的 Fable 5&a…

2026/10/12 17:30:53 阅读更多 →

最新新闻

Python编程中类与类的关系详解

Python编程中类与类的关系详解

前言 写代码写到一定程度,问题就不再是"怎么写一个类",而是"这几个类之间到底该是什么关系"。常见的关系有三类:继承(inheritance)、组合(composition)、依赖(d…

2026/10/13 3:42:54 阅读更多 →
Spring Boot+Vue旅游资源网站前后端分离开发实战解析

Spring Boot+Vue旅游资源网站前后端分离开发实战解析

做过旅游类后台开发的人应该都清楚,这类系统的核心并不在于功能多花哨,而在于信息流是否顺畅、状态是否闭环、代码是否好改。最近手头刚好在整理一套基于 Java 的旅游资源网站,包含前台浏览、线路查询、预订留言和后端管理几大块内容&#xf…

2026/10/13 3:42:54 阅读更多 →
HDFS机架感知配置实战:从原理到副本安全

HDFS机架感知配置实战:从原理到副本安全

做大数据的人应该都遇到过这种场景:集群明明有几十个节点,机柜也分了七八个,但HDFS的副本就是乱放,数据块经常整整齐齐聚在一台交换机下面,结果某天那台交换机一抖动,一堆block同时告警丢失。这种问题十有八…

2026/10/13 3:42:54 阅读更多 →
AI Agent Skill实战:把可复用流程固化给大模型,告别低效提示词

AI Agent Skill实战:把可复用流程固化给大模型,告别低效提示词

我大概是去年年底才开始认真用上“Skill”这个概念的。在此之前,我一直觉得让 AI 干点正经活,靠的就是把提示词写得越来越长、越来越细。直到我花了一个下午,把一套反复用了七八次的“调研–分析–输出简报”流程,真正固化成一个 …

2026/10/13 3:42:54 阅读更多 →
WPF+MVVM+SqlSugar数据接入实战:从界面到数据库的完整闭环

WPF+MVVM+SqlSugar数据接入实战:从界面到数据库的完整闭环

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 3:42:54 阅读更多 →
Socket编程预备:网络分层、TCP/UDP与字节序的底层思维框架

Socket编程预备:网络分层、TCP/UDP与字节序的底层思维框架

我见过太多人抱着《Unix网络编程》硬啃,代码敲了一百多行,却连bind()为什么有时要写地址、有时可以写INADDR_ANY都说不清。这不是代码量不够,而是缺了 socket 编程开始的“预备”环节。很多人把“预备”理解成装个 Linux、装好编译环境&#…

2026/10/13 3:41:54 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →