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 等高级特性

相关推荐
waves浪游3 小时前
进程控制(中)
linux·运维·服务器·开发语言·c++
满天星83035773 小时前
【Linux】信号(上)
linux·运维·服务器·开发语言·c++
科普瑞传感仪器3 小时前
航空航天领域青睐:复杂曲面机器人抛光为何必须采用六维力控?
运维·人工智能·机器人·自动化·无人机
博语小屋3 小时前
生产者消费者模型
linux·分布式·缓存
CIb0la3 小时前
在 ARM CPU 上运行 x86 应用的开源项目:FEX
linux·运维·生活
starvapour3 小时前
Ubuntu部署gitlab频繁出现500的问题
linux·ubuntu·gitlab
谷粒.3 小时前
DevOps流水线中的质量门禁设计:从理论到实践的全景解析
运维·开发语言·网络·人工智能·python·devops
wadesir3 小时前
Debian容器存储管理(Docker中实现数据持久化的完整指南)
运维·docker·debian
GOTXX3 小时前
性能与可靠双突破:openEuler 服务器场景评测报告
运维·服务器·网络·人工智能·后端·python