linux系统服务管理框架

.

SysV init 服务管理

在 Linux 中,rc 是 "run commands" 的缩写。意思是:系统在某个阶段需要执行的一组命令。因此,rc 服务配置文件就是系统启动或服务管理时要执行的脚本。

主要的 rc 服务配置文件与目录

下面是 SysV 风格系统中常见的 rc 脚本:

/etc/rc.local

系统启动完成后执行的脚本

用户可在这里写自定义启动命令

可用于启动私有服务、脚本任务等

/etc/init.d/

每个系统服务一个独立的脚本,例如:

network

ssh

cron

nginx

每个脚本支持 start、stop、restart 等命令

属于 服务脚本的核心目录

/etc/rc.d/(例如 rc0.d、rc1.d、rc3.d、rc5.d)
不同时期执行的服务脚本链接目录
"
" 代表不同运行级别:

rc0.d → 关机

rc1.d → 单用户模式

rc3.d → 多用户无图形

rc5.d → 多用户图形界面

目录中有两类符号链接:

SXXname:开机启动 (Start)

KXXname:关闭服务 (Kill)

例如:

S20nginx → 开机时第 20 顺序启动 nginx

K80nginx → 关机时第 80 顺序停止 nginx

这些 rc 文件如何协同工作?

系统选定运行级别(例如进入 runlevel 3)

执行 /etc/rc3.d/ 中所有以 S 开头的脚本

若切换运行级别,则执行 K 开头脚本停止旧服务

/etc/init.d/ 中的脚本提供真正的启动逻辑

rc.local 最后执行用户自定义启动任务

.rc 文件支持的功能

它们让系统能够:

自动启动各种服务

控制服务启动顺序

灵活定制系统启动流程

在没有 systemd 的系统上运行正常服务

尽管如今许多 Linux 发行版使用 systemd,但 rc 风格配置仍然被大量软件、嵌入式系统和旧系统使用。android系统就采用.rc的方式控制native服务的启动。

systemd服务管理

systemd 是现代 Linux 发行版中最主流、最核心的系统与服务管理框架。它取代了早期的 SysV init,提供了更快的启动速度 、更强的服务管理能力和更模块化的系统组件。

systemd 是 Linux 系统在启动时的第一个用户空间进程(PID=1),负责:

初始化系统

启动各类服务

管理系统资源

提供统一的服务控制工具

systemd 的核心特点

服务并行启动,加速开机

systemd 会分析依赖关系,让多个服务并行启动,比 SysV init 快得多。

强大的服务管理体系

通过统一的工具 systemctl 来管理一切服务。

服务依赖与自动重启

可以定义服务间的关系,例如:

网络服务依赖 NetworkManager

数据库依赖文件系统挂载

systemd 可在服务崩溃时自动重启。

日志统一管理(journald)

使用 journalctl 查询系统日志、服务日志,不再依赖分散的 log 文件。

基于 Unit 的模块化结构

systemd 将所有内容抽象为 Unit,如服务、设备、挂载点等。

systemd 的常见 Unit 类型

常见类型包括:

service:最常用,表示"服务"

socket:用于 socket 激活方式启动服务

mount:文件系统挂载

timer:替代 cron 的计时任务

target:表示一组 unit 的集合(类似运行级别)

例如:

sshd.service

docker.service

multi-user.target

systemd 与 SysV init 的区别

systemd 启动更快(并行)

systemd 配置更系统化、更统一

systemd 能自动管理服务崩溃

systemd 有更强大的日志系统

systemd 提供 Timer、Socket 等高级特性

相关推荐
Johny_Zhao7 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
YuMiao21 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI3 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行4 天前
Linux和window共享文件夹
linux