systemctl命令详解
一、什么是 systemctlsystemctl是 Linux 系统中用于检查和控制系统状态的核心命令是systemd系统和服务管理器的管理工具。systemd 是主流 Linux 发行版默认的主进程PID 1它已取代传统的 SysV init采用并行启动方式显著提升了系统启动效率。基本语法格式为systemctl [选项...] 命令 [服务/单元名...]二、服务运行时管理启动/停止/重启/重载这类命令用于控制服务当前是否运行无需重启系统即可生效。操作命令说明启动服务systemctl start 服务名立即启动一个服务-停止服务systemctl stop 服务名立即停止一个服务-重启服务systemctl restart 服务名先停止再启动会有短暂中断重载配置systemctl reload 服务名不中断服务的情况下重新加载配置文件需要服务支持安全重载/重启systemctl reload-or-restart 服务名若能重载则重载否则重启​​​​​​​有条件重启systemctl try-restart 服务名仅在服务运行中时才重启-应用场景修改配置文件后使用reload或restart使其生效遇到异常时先用stop停止处理完后再start。⚠️ 以上命令通常需要配合sudo使用。三、开机自启管理启用/禁用/屏蔽这类命令控制服务是否在系统启动时自动运行不影响服务当前状态除非配合--now使用。操作命令说明启用开机自启systemctl enable 服务名创建符号链接使服务在启动时自动运行禁用开机自启systemctl disable 服务名移除符号链接禁止自动启动立即启用并启动systemctl enable --now 服务名启用自启 立即启动原子操作立即禁用并停止systemctl disable --now 服务名禁用自启 立即停止屏蔽服务systemctl mask 服务名将服务链接到/dev/null禁止任何方式启动手动或依赖-解除屏蔽systemctl unmask 服务名恢复被屏蔽的服务-disable与mask的区别disable只是禁止开机自启手动启动依然有效-mask完全禁止启动无论是手动还是依赖都无法启动安全性更强-底层原理当执行systemctl enable service_name时systemd 会执行以下操作读取服务单元文件.service文件通常位于/usr/lib/systemd/system/或/etc/systemd/system/。检查单元文件中的[Install]部分找到WantedBy或RequiredBy指定的目标通常是multi-user.target。在对应的目标目录下如/etc/systemd/system/multi-user.target.wants/创建一个指向该服务单元文件的‌符号链接Soft Link‌。systemd 在启动过程中扫描这些.wants目录发现链接存在即启动对应服务。# 设置服务开机自启 sudo systemctl enable httpd.service # 简写省略 .service 后缀 sudo systemctl enable httpd输出示例Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.​​​​​​​四、查看状态与信息操作命令说明查看服务详细状态systemctl status 服务名显示运行状态、进程PID、最近日志等检查是否运行中systemctl is-active 服务名仅返回 active/inactive适合脚本调用检查是否已启用自启systemctl is-enabled 服务名返回 enabled/disabled/static/masked检查是否失败systemctl is-failed 服务名返回服务是否处于失败状态查看服务属性systemctl show 服务名显示服务的所有配置属性如 MainPID、MemoryLimit 等查看合并后的配置systemctl cat 服务名显示服务原始配置 所有覆盖配置的合并结果显示依赖关系systemctl list-dependencies 服务名列出服务的所有依赖单元status输出示例解读以systemctl status sshd为例● sshd.service - OpenSSH server daemon Loaded: loaded (/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2023-04-28 12:34:56 UTC; 1 day 2h ago Main PID: 12345 (sshd) Memory: 12.8MLoaded单元文件是否加载成功包含文件路径和启用状态Active当前活跃状态active/running 表示正在运行Main PID主进程 ID下方会附带显示服务日志的最后 10 条Active 常见状态含义状态含义active (running)正在运行服务型单元active (exited)已退出但配置为常驻单次执行后保持在激活状态active (waiting)正在运行等待某个事件常见于 socket、timer 类型inactive未运行failed类似 inactive但服务曾因异常退出、崩溃或超时失败activating正在从 inactive 向 active 过渡deactivating正在从 active 向 inactive 过渡五、列出所有单元操作命令说明列出活动单元systemctl list-units仅显示 active、有等待任务或曾失败但仍有记录的单元列出所有单元systemctl list-units --all包括非活动单元列出指定类型systemctl list-units --typeservice只显示 service 类型的单元列出失败单元systemctl list-units --statefailed快速定位故障单元列出已安装单元文件systemctl list-unit-files列出所有已安装的单元文件及状态enabled/disabled/masked/static单元类型说明service服务单元最常见的类型如nginx.servicetarget目标单元用于分组管理如multi-user.targetsocket套接字单元如sshd.sockettimer定时器单元类似 cron 任务如systemd-tmpfiles-clean.timermount挂载点单元path路径监视单元device设备单元automount自动挂载单元snapshot快照单元scope作用域单元slice切片单元资源管理六、修改单元配置操作命令说明创建覆盖配置systemctl edit 服务名不修改原文件安全创建覆盖配置编辑原文件systemctl edit --full 服务名直接编辑主单元文件重新加载 systemdsystemctl daemon-reload修改任何单元文件后必须执行查看覆盖配置systemctl cat 服务名显示原始 所有覆盖配置的合并结果修改单元配置的标准流程systemctl edit 服务名创建覆盖配置修改后保存退出systemctl daemon-reload使 systemd 重新加载配置systemctl restart 服务名重启服务使配置生效配置文件存储路径优先级依次升高/usr/lib/systemd/system/系统默认配置由软件包提供/etc/systemd/system/用户自定义配置优先级更高手动修改应在此处七、系统操作关机/重启/睡眠/休眠操作命令说明立即重启systemctl reboot重启系统立即关机systemctl poweroff切断电源关机挂起睡眠systemctl suspend将状态保存到内存关闭大部分硬件按电源键唤醒休眠systemctl hibernate将状态保存到硬盘可完全断电混合睡眠systemctl hybrid-sleep同时挂起到内存和硬盘切换运行级别Targetsystemctl isolate target切换到指定的 target设置默认 Targetsystemctl set-default target设置系统默认启动目标如 graphical.target常见 Target运行级别Target说明default.target默认目标通常指向 multi-user.target 或 graphical.targetmulti-user.target多用户文本模式无图形界面graphical.target图形界面模式rescue.target救援模式单用户修复环境reboot.target重启目标poweroff.target关机目标 传统 SysV init 中的runlevel 3对应multi-user.targetrunlevel 5对应graphical.target。八、日志管理journalctlsystemctl本身不存储日志但可通过systemctl status查看最近 10 条日志并通过journalctl进行全面的日志查询。systemd-journald服务负责收集和存储日志默认处于启用状态-。操作命令说明查看服务日志journalctl -u 服务名查看指定服务的全部日志实时跟踪日志journalctl -u 服务名 -f类似tail -f实时输出新日志限制显示行数journalctl -u 服务名 -n 100只显示最后 100 行按时间过滤journalctl --since 1 hour ago查看最近 1 小时的日志查看当前启动日志journalctl -b仅显示本次启动后的日志按优先级过滤journalctl -p err只显示错误级别以上的日志err/warning/info/debug管理日志空间journalctl --vacuum-size500M将日志大小限制在 500MB 以内日志优先级级别从高到低0-emerg、1-alert、2-crit、3-err、4-warning、5-notice、6-info、7-debug。九、常用选项Options选项说明-t, --type类型按单元类型过滤如--typeservice,socket--state状态按状态过滤如--statefailed只显示失败的单元-p, --property属性与show命令配合只显示指定属性-a, --all显示所有单元包括非活动的-r, --recursive同时列出本地容器中的单元--reverse与list-dependencies配合仅显示反向依赖---after与list-dependencies配合仅显示After中的单元-q, --quiet安静模式不输出额外信息--h, --help显示帮助信息---version显示版本信息-十、综合示例# 1. 检查 Nginx 服务状态 systemctl status nginx # 2. 启动 Nginx 并设置开机自启原子操作 sudo systemctl enable --now nginx # 3. 修改 Nginx 配置后不中断服务地重载配置 sudo systemctl reload nginx # 4. 如果重载不可用则执行重启 sudo systemctl reload-or-restart nginx # 5. 临时禁用 Nginx 自启但不停止当前运行 sudo systemctl disable nginx # 6. 强制屏蔽一个服务禁止任何启动 sudo systemctl mask some-dangerous-service # 7. 查看所有失败的服务 systemctl list-units --statefailed # 8. 查看 Nginx 服务的完整日志 journalctl -u nginx --since 2 hours ago # 9. 实时监控 Nginx 日志 journalctl -u nginx -f # 10. 修改服务配置的标准流程 sudo systemctl edit nginx # 创建覆盖配置 # 编辑并保存后... sudo systemctl daemon-reload # 重新加载 systemd 配置 sudo systemctl restart nginx # 重启服务 # 11. 系统维护切换到单用户修复模式 sudo systemctl rescue # 12. 重启系统 sudo systemctl reboot十一、常见问题排查问题现象可能原因排查方法systemctl: command not found系统未使用 systemd如 Alpine、Devuan 等旧版或轻量级发行版ps -p 1检查 PID 1 是否为systemd-Failed to connect to busD-Bus 服务未运行sudo systemctl start dbus-服务启动失败配置错误、端口冲突、依赖缺失systemctl status 服务名journalctl -u 服务名 -n 50查看详细错误-服务无法停止进程僵死、资源锁定systemctl kill -s KILL 服务名强制终止daemon-reload后仍不生效编辑了错误的路径或未执行restart确认修改在/etc/systemd/system/下重启服务磁盘空间不足导致 systemctl 异常/var分区或日志目录空间耗尽df -h检查磁盘空间journalctl --vacuum-size500M清理日志-延伸阅读通过man systemctl或systemctl --help可获取完整的官方文档。

相关新闻

NLP技术实战:从Transformer到智能客服优化

NLP技术实战:从Transformer到智能客服优化

1. 从理论到实践:NLP技术如何改变人机交互三年前我第一次尝试用Python写了个简单的聊天机器人,当时只能识别几个固定指令。如今打开手机,智能助手能流畅理解"帮我订后天下午三点到上海的高铁,二等座靠窗"这样的复杂需求…

2026/10/2 11:14:43 阅读更多 →
Burp Suite实战:DVWA靶场暴力破解攻防与安全加固指南

Burp Suite实战:DVWA靶场暴力破解攻防与安全加固指南

1. 项目概述:从“合法”的视角理解渗透测试中的暴力破解在网络安全领域,暴力破解(Brute Force Attack)是一个古老但从未过时的攻击手法。它的核心逻辑简单到极致:通过穷举所有可能的组合(如用户名/密码、验…

2026/10/6 14:44:26 阅读更多 →
大模型与AI Agent的核心差异及技术实现

大模型与AI Agent的核心差异及技术实现

1. 概念本质:大模型与AI Agent的核心差异大模型(Large Language Model)和AI Agent这两个概念经常被混为一谈,但它们的本质差异就像汽车发动机和自动驾驶系统的区别。大模型是底层能力提供者,而AI Agent是具备自主决策能…

2026/10/11 7:33:40 阅读更多 →

最新新闻

MySQL 64学时教学大纲拆解:从E-R图到PetStore建库全链路

MySQL 64学时教学大纲拆解:从E-R图到PetStore建库全链路

/* 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 2:55:40 阅读更多 →
MySQL与PostgreSQL整数类型选型:从INT到BIGINT的避坑指南

MySQL与PostgreSQL整数类型选型:从INT到BIGINT的避坑指南

搞数据库的人,十有八九都遇到过这种场景:建表时图省事顺手写了个INT,看着挺正常,结果业务量上来之后,主键突然撞到天花板,或者磁盘空间莫名暴涨。选整数类型这件事,在 MySQL 和 PostgreSQL 里看…

2026/10/12 2:55:40 阅读更多 →
互联网医院+居家养老:医养协同闭环如何落地

互联网医院+居家养老:医养协同闭环如何落地

晚上九点多,同事给我打电话,说她父亲在老家测出血压180/110,人有点晕。她自己在外地出差,隔着几百公里,语音那头全是慌张。这种场景,做互联网医院和居家养老医养结合项目之前,基本只能干着急&am…

2026/10/12 2:55:40 阅读更多 →
消息队列如何保证数据不丢失?生产、存储、消费三端全解析

消息队列如何保证数据不丢失?生产、存储、消费三端全解析

面试题这东西,十有八九是套路,但“消息队列如何保证数据不丢失”是我见过最容易“背了配置但答不出本质”的一道。很多人上来就背:Kafka 开 acksall、副本设 3、消费者别自动提交,听起来很全,但面试官只要换个问法——…

2026/10/12 2:55:40 阅读更多 →
Git常用命令实战:从核心设计逻辑到高频操作指南

Git常用命令实战:从核心设计逻辑到高频操作指南

每个写代码的人,早晚都要面对版本管理这件事。刚开始我不太在意,直到有一次熬夜改了三天代码,因为一次误操作把整个项目覆盖,才真正体会到版本管理的分量。后来把Git当成每日必用工具,才发现真正高频的“常用命令”就二…

2026/10/12 2:55:40 阅读更多 →
PLC程序质量四层评估模型:从能运行到可维护可演进

PLC程序质量四层评估模型:从能运行到可维护可演进

/* 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 2:54:40 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →