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/8/11 19:27:33 阅读更多 →
Astryx:AI就绪设计系统如何解决React开发中的Agent协作痛点

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

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

2026/8/11 17:27:50 阅读更多 →
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/8/12 2:32:22 阅读更多 →

最新新闻

GLINK通信中间件:面向高并发长连接场景的高性能解决方案

GLINK通信中间件:面向高并发长连接场景的高性能解决方案

1. 从一次“通信失败”的排查说起那天下午,我正盯着监控面板上一条不断跳动的告警信息发愁。告警来自一个部署在边缘设备上的数据采集模块,它负责将传感器数据上报到云端。日志里反复出现“连接建立失败”和“资源不足”的错误。这个模块基于一个常见的开…

2026/8/13 5:05:33 阅读更多 →
Windows PIN登录失效的深度诊断与修复指南

Windows PIN登录失效的深度诊断与修复指南

1. 项目概述:当Windows PIN突然“罢工”时你有没有遇到过这样的场景:早上到公司,或者刚重启完电脑,准备用PIN码快速登录Windows系统,结果屏幕上赫然显示“你的PIN不可用,请使用密码登录”?那一刻…

2026/8/13 5:05:33 阅读更多 →
AI文本水印技术解析:从绿名单算法到工程实践

AI文本水印技术解析:从绿名单算法到工程实践

最近在部署和使用各类AI模型时,你是否遇到过这样的困惑:如何判断一段文本是AI生成的还是人类创作的?随着AI生成内容(AIGC)的爆炸式增长,这个问题正变得日益尖锐。无论是学术诚信、内容版权,还是…

2026/8/13 5:05:33 阅读更多 →
C++ RAII与智能指针:从资源管理困境到现代编程实践

C++ RAII与智能指针:从资源管理困境到现代编程实践

1. 项目概述:从资源管理的“泥潭”到RAII的“救赎”如果你写过一段时间的C,尤其是写过一些需要手动管理内存、文件句柄或者网络连接这类资源的代码,那你大概率经历过这样的深夜:程序运行了几个小时后突然崩溃,或者内存…

2026/8/13 5:05:33 阅读更多 →
IHP SG13G2开源PDK:130nm BiCMOS工艺设计套件的深度技术解析与应用实践

IHP SG13G2开源PDK:130nm BiCMOS工艺设计套件的深度技术解析与应用实践

IHP SG13G2开源PDK:130nm BiCMOS工艺设计套件的深度技术解析与应用实践 【免费下载链接】IHP-Open-PDK 130nm BiCMOS Open Source PDK, dedicated for Analog, Mixed Signal and RF Design. Documentation is here: 项目地址: https://gitcode.com/gh_mirrors/ih/…

2026/8/13 5:05:33 阅读更多 →
Windows开机密码忘记?PE启动盘重置密码全攻略

Windows开机密码忘记?PE启动盘重置密码全攻略

1. 问题场景与核心思路剖析遇到电脑开机密码忘记的情况,相信不少朋友都心头一紧。无论是个人电脑还是工作用机,这扇“门”一旦打不开,里面的文件、资料、正在进行的工作都可能被暂时锁住,确实让人着急。尤其是现在很多朋友习惯用微…

2026/8/13 5:04:33 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/11 17:09:45 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/12 1:11:10 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/11 17:09:45 阅读更多 →