当前位置: 首页 > article >正文

韦东山imx6ull_pro开发板启动文件分析

S开头的脚本都是一些驱动外设脚本,以S40network为例,这是一个网络文件的设置脚本,在开机的过程中启动网络服务,对应其他的S开头的脚本都是对应的开发板开机过程中对应启动的服务。

这里主要说明rcK和rcS两个文件:

在类Unix系统(特别是在嵌入式系统或使用 sysvinit 初始化系统的轻量级发行版中)。rcS和rcK是两个重要的脚本,分别用于 启动(Startup)和 关闭 (Shutdown)过程,它们通常位于 /etc/init.d/ 目录下,是系统初始化流程的一部分。

1、rcS脚本

这个脚本通常在系统初始化阶段(例如 /etc/rcS 或 /etc/init.d/rcS),确保所有服务和配置在系统启动时正确加载。

运行机制:当系统进入单用户模式(runlevel S)或 多用户(runlevel 2~5)时,rcS会被调用。

#!/bin/sh                                
                                         
                                         
# Start all init scripts in /etc/init.d  
# executing them in numerical order.        
#                                           
psplash -n &                                
for i in /etc/init.d/S??* ;do               
                                            
     # Ignore dangling symlinks (if any).   
     [ ! -f "$i" ] && continue              
                                            
     case "$i" in                                 
        *.sh)                                     
            # Source shell script for speed.      
            (                                     
                trap - INT QUIT TSTP              
                set start                         
                . $i 
*.sh)                            
            # Source shell script for speed.
            (                               
                trap - INT QUIT TSTP        
                set start                   
                . $i                        
            )                               
            ;;                              
        *)                                  
            # No sh extension, so fork subprocess.
            $i start                              
            ;;                                    
    esac                                          
done                                              
                                                  
/bin/hostname -F /etc/hostname

总结一下这个脚本的作用就是:

1、启动 psplash 启动画面

2、按照顺序执行,/etc/init.d 目录中的所有启动文件(以S开头)

3、根据脚本类型选择合适的执行方式

4、最后设置系统的主机名

2、rcK 脚本

全称:Runlevel Change Script for Kill(关闭时的运行级别切换脚本)。

作用:在系统关闭或者系统重启时执行,负责停止多有运行的服务并清理资源。

运行机制:当系统进入 关机模式(runlevel 0) 或 重启模式(runlevel 6) 时,rcK 会被调用。

#!/bin/sh


# Stop all init scripts in /etc/init.d
# executing them in reversed numerical order.
#
for i in $(ls -r /etc/init.d/S??*) ;do

     # Ignore dangling symlinks (if any).
     [ ! -f "$i" ] && continue

     case "$i" in
        *.sh)
            # Source shell script for speed.
            (
                trap - INT QUIT TSTP
                set stop
                . $i
            )
            ;;
        *)
            # No sh extension, so fork subprocess.
            $i stop
            ;;
    esac
done

总结,这个脚本是一个典型的sysbinit关闭脚本,用于停止所有服务,通过反向顺序执行,/etc/init.d/目录中的脚本,确保依赖关系。


http://www.kler.cn/a/534669.html

相关文章:

  • 109,【1】攻防世界 web 题目名称-文件包含
  • postgresql 函数错误捕捉
  • 在Debian 12上安装VNC服务器
  • C++17新特性:结构化绑定
  • 网络爬虫js逆向之某音乐平台案例
  • PyTorch快速入门
  • 在本地顺利的部署一个al模型从零开始 windows
  • [Windows] DeepSeek R1 本地部署 web-ui 可以断网
  • Effective Python列表和字典(2.1):列表切片、解包以及sort函数用法
  • ES冷热数据分离配置
  • 网络安全技术架构 网络安全结构体系图
  • 漏洞管理:筑牢网络安全防线的关键环节
  • Spring AI 和 Ollama 实现 DeepSeek-R1 的本地 API 服务与调用
  • 20240206 adb 连不上手机解决办法
  • 使用类别数据编码进行连续变量的特征提取
  • 基于PaddleX的机器学习开发指南
  • import { Component, Vue, Prop, Watch } from ‘vue-property-decorator‘
  • OLED显示屏使用学习——(二)
  • deepseek服务器繁忙的备选方案(汇总)
  • 案例1.spark和flink分别实现作业配置动态更新案例
  • CVPR | CNN融合注意力机制,芜湖起飞!
  • 【Vue3 入门到实战】6. watchEffect
  • 【Golang学习之旅】Go 语言错误处理(error 接口、panic、recover)
  • Kubernetes完整详细学习笔记
  • 点(线)集最小包围外轮廓效果赏析
  • 第二个Qt开发实例:在Qt中利用GPIO子系统和sysfs伪文件系统实现按钮(Push Button)点击控制GPIO口(效果为LED2灯的灭和亮)