这里介绍一个小技巧,在系统启动时,预留一个启动脚本,在需要临时修改一些系统配置或者额外启动程序时比较方便。
这个方法主要针对只读文件系统,如果是可读写的文件系统则不需要了,可读写的文件系统可以随时修改。
我们都知道一般嵌入式Linux系统启动脚本是/etc/init.d/rcS,我们的应用程序启动入口也是在这个脚本里添加,一般会在这里添加一个应用程序的启动脚本,最好不要再这里直接添加启动程序,这样便于后期应用程序启动脚本的修改,而不再需要修改文件系统里的脚本。
现在在系统启动脚本rcS里添加一个应用程序的启动脚本,暂且叫init_app.sh,这个init_app.sh里面,主要是启动应用程序,初始化应用配置参数。
需要预留的启动脚本,就可以加在这个init_app.sh脚本里,预留脚本名暂定为:run.sh,这个脚本的路径放在系统的可读写分区(一般和配置参数放在一起),添加脚本如下:
if [ -f /mnt/data/run.sh ] then /bin/sh /mnt/data/run.sh & fi
这里先检测脚本是否存在,如果存在则执行,不存在则不执行,这里有两点说明下:
- 使用/bin/sh启动脚本,这样不管这个脚本有没有可执行权限,都会执行。
- 使用后台运行“&”,这样不影响init_app.sh脚本的正常执行。
如果使用现场需要临时启动一个额外的程序,我们就不需要再去改应用程序里的启动脚本了,直接再run.sh里添加即可。
常用的是对系统做额外的配置的比较多,那配置命令就写在这个脚本里面,比如修改网络路由表、添加一些链接文件、清空日志等等。