Wrayの知识库 Wrayの知识库
首页
  • Java 基础
  • Java 集合
  • Java 并发
  • Java IO
  • JVM
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • Spring Security
  • MySQL
  • Redis
  • 计算机基础
  • 操作系统原理
  • Linux
  • MacOS
  • Windows
  • 系统工程与研究专题
  • AI 基础
  • 大模型基础
  • Prompt 工程
  • RAG 检索增强生成
  • Agent 智能体
  • AI 应用开发
  • AI 工程化
  • AI 安全与治理
  • AI 面试与设计题
  • 纸质书
  • 电子书
  • 学习课程
疑难杂症
GitHub (opens new window)
首页
  • Java 基础
  • Java 集合
  • Java 并发
  • Java IO
  • JVM
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • Spring Security
  • MySQL
  • Redis
  • 计算机基础
  • 操作系统原理
  • Linux
  • MacOS
  • Windows
  • 系统工程与研究专题
  • AI 基础
  • 大模型基础
  • Prompt 工程
  • RAG 检索增强生成
  • Agent 智能体
  • AI 应用开发
  • AI 工程化
  • AI 安全与治理
  • AI 面试与设计题
  • 纸质书
  • 电子书
  • 学习课程
疑难杂症
GitHub (opens new window)
  • 操作系统概述
  • 计算机基础

  • 操作系统原理

  • Linux

    • Linux简介与发行版
    • Linux文件系统与目录结构
    • Shell与常用命令
    • Linux用户权限与sudo
    • Linux进程服务与systemd
      • 1. 学习目标
      • 2. 知识框架
      • 3. 核心概念
      • 4. 机制与实践
      • 5. 常用命令与工具
      • 6. 常见误区
      • 7. 进阶研究方向
      • 8. Tips 快问快答
      • 9. 总结
    • Linux网络配置与排障
    • Linux软件包日志与计划任务
    • Linux存储磁盘与文件系统
    • Linux性能分析与内核参数
    • Linux安全加固与容器基础
  • MacOS

  • Windows

  • 系统工程与研究专题

目录

Linux进程服务与systemd

systemd 是大多数现代 Linux 发行版的服务管理核心。它负责启动服务、管理依赖、收集日志、监控状态和处理失败恢复。

# 1. 学习目标

  • 掌握 systemd unit、service、target、journal 的基本概念。
  • 能编写和排查简单服务配置。
  • 能定位服务启动失败、反复重启和环境差异问题。

# 2. 知识框架

Linux进程服务与systemd
├─ 入门:建立术语、对象和日常操作的直觉
├─ 进阶:理解机制、边界和跨平台差异
└─ 专家:能排障、能设计、能阅读实现和研究材料

systemd 把服务生命周期配置化:何时启动、依赖谁、以谁运行、失败怎么办、日志去哪,都可以在 unit 中声明。

# 3. 核心概念

主题 说明 工程关注
Unit systemd 管理的基本对象 service、timer、socket、mount
Service 后台服务配置单元 ExecStart、User、Restart
Target 一组 unit 的启动目标 系统运行级别替代模型
Journal systemd 日志系统 统一查看服务和系统日志

# 4. 机制与实践

  1. 服务文件中显式声明 User、WorkingDirectory、EnvironmentFile 和 Restart 策略。
  2. 用 systemctl status 和 journalctl 结合查看失败原因。
  3. 更新 unit 后执行 daemon-reload,再重启服务。

# 5. 常用命令与工具

命令或工具 作用 使用建议
systemctl status nginx 查看服务状态 确认是否运行和最近日志
journalctl -u nginx -f 实时查看服务日志 排查启动和运行错误
systemctl daemon-reload 重新加载 unit 文件 修改服务文件后执行

# 6. 常见误区

  • 修改 unit 后不 reload:systemd 仍使用旧配置,导致改动不生效。
  • 服务依赖未声明:开机时依赖未准备好,服务偶发启动失败。
  • 把环境变量写在登录 Shell:systemd 服务不会自动读取交互式 Shell 配置。

# 7. 进阶研究方向

  • 学习 socket activation、timer、watchdog 和 slice 资源控制。
  • 研究 journald 日志持久化和采集方案。
  • 设计业务服务的 systemd 单元模板和故障恢复策略。

# 8. Tips 快问快答

Q:为什么 systemctl start 和手动命令表现不同?

A:systemd 服务的用户、环境变量、工作目录和资源限制可能不同。

Q:Restart=always 是否推荐?

A:要谨慎。最好配合启动限频、健康检查和告警,避免重启风暴。

Q:journalctl 看不到历史日志怎么办?

A:可能未开启持久化,检查 /var/log/journal 和 journald 配置。

# 9. 总结

systemd 是 Linux 服务治理的核心。掌握它后,服务启动、依赖、日志和恢复策略都可以标准化。

上次更新: 2026/06/25, 10:02:19
Linux用户权限与sudo
Linux网络配置与排障

← Linux用户权限与sudo Linux网络配置与排障→

Copyright © 2023-2026 Wray | 鄂ICP备2024050235号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式