基于RV1126开发板设置应用开机自启动

电子说

1.4w人已加入

描述

1. 简要介绍

       开机自启动涉及到四个脚本文件。分别是:S99_userapp、start_app.sh、stop_app.sh、/run.sh。

1.1 系统默认自带:

       以下三个脚本文件,系统出厂时已经默认自带,用户通常无须关心。

       /etc/init.d/S99_userapp

       /userdata/start_app.sh

       /userdata/stop_app.sh

1.2 用户自定义创建:

       以下这个脚本文件,系统出厂时默认不存在,须用户根据对自身项目程序的管理需求,进行创建与编辑。

       /userdata/apps/run.sh

1.3 调用顺序及关系:

开机自启动

2. 操作指导:

2.1 创建并编辑/userdata/apps/run.sh脚本

       建立adb连接(不清楚如何操作,可参考《入门指南/开发板调试方式介绍》中的1.ADB调试)

       执行命令,切换到板卡环境:

 

adb shell
开机自启动

 

       执行命令,定位到/userdata/apps目录:

 

cd userdata/apps
开机自启动

 

       通过vi命令,创建run.sh脚本:

 

vi run.sh

 

       把下方源码写入脚本,则可以使系统自带的应用开机自启动。

 

#!/bin/sh

if [ -d ./facialGate ];then
	cd ./facialGate
	./qSolu-facialGate &
fi

 

       但若用户有自己定义的应用(myapp),则需要写入下方的源码。

 

#!/bin/sh

if [ -d ./myapp ];then
	cd ./myapp
# 此处执行什么命令,需要用户根据自己的需求编写。
fi
cd ..

 

       执行命令,修改run.sh的执行权限。

 

chmod 777 run.sh
sync

 

       完成以上操作即可实现开机自启动。

2.2 重启验证

       重启有两种方式。

       方式一:软件重启,在adb shell环境下输入重启命令:

 

reboot

 

       方式二:硬件重启,按下板卡上的RESET按键:

开机自启动

2.3 注意事项说明:

       通常用户的程序启动后就不会退出,所以要在程序执行命令后面添加“&”使之在后台运行,这样就不会阻塞其它启动脚本的运行。

 

./qSolu-facialGate &

 

       若用户有自己的动态库在用户空间中,也可以在启动脚本内添加环境变量。

 

source /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/userdata/mylib/

 

       如果要开机自动启动的是QT程序,且有对QT环境变量有自定义的要求,则还可以设置QT环境变量。

 

export QT_QPA_FB_DRM=1
export QT_QPA_PLATFORM=linuxfb:rotation=0
#export QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS=/dev/input/event5:rotate=180

 

3. 详细说明:

3.1 /etc/init.d/S99_userapp

       系统的自带的启动脚本,如有需要可自行修改(但需要重新制作文件系统)。

 

#!/bin/sh

source /etc/profile

case "$1" in
	start)
		if [ -e /userdata/start_app.sh ];then
			/userdata/start_app.sh &
		fi
		;;
	stop)
		if [ -e /userdata/stop_app.sh ];then
			/userdata/stop_app.sh &
		fi
		;;
	*)
		echo "Usage: $0 {start|stop}"
		exit 1
		;;
esac
exit 0

 

       把绝对路径执行脚本的命令添加到脚本“/etc/init.d/S99_userapp”的case start分支中,系统启动时就会自动执行这句命令,从而启动用户空间的应用脚本。

3.2 /userdata/start_app.sh

       板卡出厂自带的启动脚本,如有需要统筹管理多个启动脚本,则可修改此对脚本(无须重新制作文件系统,具有一定的灵活度)。

 

#!/bin/sh

if [ -e /userdata/apps/run.sh ];then
	cd /userdata/apps && ./run.sh
fi

 

3.3 /userdata/stop_app.sh

 

#!/bin/sh

# Kill your app when shutdown system. For example:
# killall facialGate

审核编辑 黄宇

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分