下面以linx 5.4.0-xilinx-v2020.1为例说明如何添加自启动脚本。linux 系统内核启动完成后会加载第一个进程 init,关于init进程的介绍参考博客https://zhuanlan.zhihu.com/p/573503461。
在/etc/inittab中定义个了个默认的运行级别,这里是5,如下图所示:
inittab中一共定义了6个运行级别,id=0级别是关机模式,id=1是单用户模式,id=2~id=4是多用户模式,id=5是重启模式。这几个模式分别对应/etc/rcx.d的启动目录(x为0~5)。比如设置了默认运行级别是5,就会自动运行rc5.d目录中的脚本,这些脚本会按照编号顺序运行。如果定义的默认运行级别是5重启模式,则系统启动后就立刻重启,一直循环。
这里需要用到的几个启动脚本是/etc/init.d/rcS /etc/init.d/rc /etc/rcS.d /etc/rc5.d
通过实际测试的执行顺序是:
1、/etc/init.d/rcS先执行,rcS会调用/etc/init.d/rc 脚本并设置启动级别为S
2、/etc/init.d/rc脚本根据启动级别S去执行/etc/rcS.d目录下的启动脚本
3、/etc/init.d/rc脚本又会被执行,这次回去执行定义的默认级别的目录,这里是/etc/rc5.d目录下的启动脚本
整个顺序是: rcS-->rc-->rcS.d-->rc5.d
如果要添加自己的启动脚本可以在/boot 目录下建立一个init.sh启动文件,在rcS脚本末行中执行这个文件。也可以再rc5.d目录中新建一个启动顺序排在最后的启动文件,比如S100yy_init.sh,然后再这个启动文件中去执行自己的启动文件。
标签:脚本,etc,启动,rcS,zynmp,init,linux,自启动,级别 From: https://www.cnblogs.com/YYFaGe/p/17187615.html