Linux 系统运行级目录(/etc/rc.d)的服务启动逻辑

梦强君_2887

梦强君_2887

2026-07-14

679人浏览

原创

linux运行级服务启动逻辑基于“运行级别+符号链接+执行顺序”协同工作:/etc/rc.d/init.d存服务脚本,/etc/rc.d/rcn.d用sxx/kxx链接控制启停,init通过rc.sysinit、rc $runlevel和rc.local按序调度。

linux 系统运行级目录(/etc/rc.d)的服务启动逻辑

Linux 系统运行级目录(/etc/rc.d)的服务启动逻辑,核心在于“运行级别 + 符号链接 + 执行顺序”三者协同工作,不是简单遍历执行,而是有明确规则的条件式调用。

/etc/rc.d/init.d 是服务脚本的实际存放地

所有可管理的服务(如 httpd、sshd、crond)的启动脚本都集中放在 /etc/rc.d/init.d/(或其软链接 /etc/init.d/)。这些是标准 Shell 脚本,至少支持 start 和 stop 参数,通常还支持 restart、status、reload 等。

它们本身不自动运行,只是“待命程序”,是否执行、何时执行、以什么参数执行,全由当前运行级别和对应目录下的链接决定。

/etc/rc.d/rcN.d 目录控制服务启停行为

每个运行级别 N(0–6)对应一个 /etc/rc.d/rcN.d/ 目录(例如 rc3.d 对应多用户文本模式,rc5.d 对应图形界面)。该目录下不存放真实脚本,只存放指向 init.d 中脚本的符号链接,命名格式统一为:

Computer Use Linux
Computer Use Linux

顶级 Linux 计算机使用技能,配套独立自举运行时,无需本地 Claude 安装、私有原生模块等。

下载
  • SxxServiceName:表示在进入该运行级别时启动服务,xx 是两位数字(00–99),决定执行顺序(从小到大)
  • KxxServiceName:表示在进入该运行级别前,若服务已在上一运行级别中运行,则先停止它,xx 同样决定顺序
  • DxxServiceName:表示禁用,直接被忽略(较少见)

例如:/etc/rc.d/rc3.d/S22sshd → 进入 runlevel 3 时,按序执行 /etc/rc.d/init.d/sshd start;/etc/rc.d/rc3.d/K15network → 若上一运行级别中 network 已运行,则先执行 network stop。

init 按固定流程调用 rc 脚本驱动整个过程

系统启动后,init 进程读取 /etc/inittab(或 systemd 兼容层)获知默认运行级别(如 3 或 5),然后执行:

  • /etc/rc.d/rc.sysinit:完成基础环境初始化(挂载文件系统、设置主机名、启用 swap、校验磁盘等)
  • /etc/rc.d/rc $RUNLEVEL:核心调度器。它进入对应 rcN.d 目录,先按数字升序执行所有 Kxx* 链接(传 stop),再按数字升序执行所有 Sxx* 链接(传 start)
  • /etc/rc.d/rc.local:作为最后一步,在所有服务启动完毕、登录提示出现前执行,适合放自定义命令(需确保有执行权限:chmod +x /etc/rc.d/rc.local)

运行级别切换时服务状态会动态调整

运行级别不是静态快照,而是动态状态机。比如从图形界面(runlevel 5)切回文本模式(runlevel 3)时:

  • init 先调用 /etc/rc.d/rc 3
  • 它对比 runlevel 5 和 runlevel 3 的 rcN.d 内容,发现 GDM/KDE 等图形相关服务在 rc3.d 中只有 K 链接、没有 S 链接,就会执行其 stop
  • 同时,sshd、crond 等在两个级别中都有 S 链接,通常不会重复启动(脚本内部会判断当前状态)

这种机制保证了服务随运行环境精准启停,避免资源浪费或冲突。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3730

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3233

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2313

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5550

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5222

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3093

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2605

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2819

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习