一、原理
在嵌入式开发中常会遇到需要某个程序或某个脚本自动启动的情况,本文介绍在Busybox启动方式下开机自动运行脚本的方法。
Busybox启动方式的自启动脚本在/etc/init.d/
目录下,我们使用ls /etc/init.d/
查看该目录
该目录中有两个特殊脚本,rcK
和rcS
。rcS
会在系统开机时运行(S即为Start),rcK
会在系统关机时运行(K即为Kill)。
rcS
在运行时会遍历/etc/init.d/
目录下所有 S+两位数字+脚本名 的脚本,其中两位数字代表了运行优先级,数字越小越早启动。
我们若想实现自动启动,写好脚本,将其按照命名规范命名,并放入/etc/init.d/
目录即可。
二、实操
这里以一个LVGL程序为例,实现开机自动启动LVGL图形界面
1、编写启动脚本: vim startLVGL
#!/bin/sh
echo 0 > /sys/class/vtconsole/vtcon0/bind
echo 0 > /sys/class/vtconsole/vtcon1/bind
/root/SquareLine_Project
2、为脚本添加运行权限
chmod +x startLVGL
3、将脚本重命名并复制到/etc/init.d/
目录下
cp startLVGL /etc/init.d/S99startLVGL
4、重启,此时程序应该已经自动启动