Linux启动服务顺序怎么看_systemd依赖关系说明【教学】
发布时间 - 2025-12-17 00:00:00 点击率:次Linux服务启动顺序由依赖关系决定,而非书写顺序;通过Wants/Requires声明“想要”或“必须”依赖,After/Before控制实际执行先后;target划分启动阶段,调试可用systemd-analyze和journalctl。
Linux用systemd启动时,服务顺序不是靠“先写先启”,而是由依赖关系决定的。看启动顺序,本质是理清服务之间的Wants、Requires、After、Before这些依赖声明。
查单个服务的依赖图
用systemctl list-dependencies命令能直观看到服务依赖树:
-
systemctl list-dependencies sshd.service—— 查sshd依赖哪些单元(默认只显示正向依赖) -
systemctl list-dependencies --reverse sshd.service—— 查哪些服务依赖sshd(即sshd被谁“Wants”或“Requires”) -
systemctl list-dependencies --all sshd.service—— 显示完整依赖图(含间接依赖,输出较长)
看服务实际启动先后顺序
依赖关系不等于执行顺序,After=和Before=才真正影响排序。要确认某个服务到底在哪个阶段启动:
-
systemctl show -p After,Before,Wants,Requires sshd.service—— 直接查看关键依赖字段值 -
systemctl cat sshd.service | grep -E "(After|Before|Wants|Requires)="—— 查看unit文件中显式声明的依赖 - 注意:
Wants=network.target表示“希望network.target就绪”,但不强制等待;而After=network.target才表示“必须在网络.target启动完成之后再启动”
理解target与启动阶段划分
systemd用target模拟传统运行级别,不同target代表系统就绪的不同阶段:
-
sysinit.target:基础系统初始化(udev、mount、swap等) -
basic.target:基础服务就绪(日志、定时器、dbus等) -
multi-user.target:多用户命令行环境(网络、ssh、数据库等通常在此阶段激活) -
graphical.target:图形界面(依赖multi-user.target) - 服务通过
WantedBy=multi-user.target等方式绑定到target,从而进入对应启动批次
调试启动卡顿或顺序异常
如果某服务没按预期启动,或系统启动慢,可这样排查:
-
systemd-analyze plot > boot.svg—— 生成可视化的启动时间轴(需用浏览器打开svg) -
systemd-analyze critical-chain sshd.service—— 查sshd及其上游依赖链耗时,定位瓶颈 -
journalctl -b -u sshd.service—— 看该服务本次启动的日志,确认是否因依赖未就绪而延迟启动 - 常见陷阱:自定义服务忘了加
After=network-online.target却用了网络地址,结果因网络未就绪而失败重试
依赖关系写在unit文件里,修改后记得systemctl daemon-reload重新加载配置。理清Wants和After的区别,比死记启动顺序更管用。
# linux
# svg
# 浏览器
# ai
# 区别
# asic
# 数据库
# ssh
# 在此
# 是由
# 用了
# 自定义
# 只显示
# 而非
# 但不
# 写在
# 较长
# 不等于
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
java获取注册ip实例
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何在IIS中新建站点并解决端口绑定冲突?
浅析上传头像示例及其注意事项
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
如何快速生成专业多端适配建站电话?
晋江文学城电脑版官网 晋江文学城网页版直接进入
创业网站制作流程,创业网站可靠吗?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
EditPlus 正则表达式 实战(3)
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
如何在Windows 2008云服务器安全搭建网站?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
JavaScript如何实现继承_有哪些常用方法
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Java垃圾回收器的方法和原理总结
JavaScript如何实现音频处理_Web Audio API如何工作?
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
中国移动官方网站首页入口 中国移动官网网页登录
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
Python文本处理实践_日志清洗解析【指导】
网站建设保证美观性,需要考虑的几点问题!
lovemo网页版地址 lovemo官网手机登录
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
BootStrap整体框架之基础布局组件
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
简历在线制作网站免费版,如何创建个人简历?
Laravel集合Collection怎么用_Laravel集合常用函数详解
今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】
如何在香港服务器上快速搭建免备案网站?
Laravel如何创建自定义Artisan命令?(代码示例)
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
装修招标网站设计制作流程,装修招标流程?
bootstrap日历插件datetimepicker使用方法
Laravel中的withCount方法怎么高效统计关联模型数量
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
音乐网站服务器如何优化API响应速度?
清除minerd进程的简单方法


先后;target划分启动阶段,调试可用systemd-analyze和journalctl。