开机自启动涉及到四个脚本文件。分别是:rc.local、S99_userapp、start_app.sh、stop_app.sh。
/etc/rc.local:这个脚本是Linux文件系统启动后第一个程序就会去调用的脚本。它会去/etc/init.d/下面,按命名顺序,遍历调用所有脚本。(如A41会比S41先调用,S41会比S99先调用)
/etc/init.d/S99_userapp:这个是专用于管理用户应用程序启/停的脚本。
/userdata/start_app.sh:用户应用程序的启动逻辑通常写进这里,里面可以随意修改。
/userdata/stop_app.sh:用户应用程序的结束逻辑通常写进这里,里面可以随意修改。

系统的自带的启动脚本,如有需要可自行修改。
#!/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分支中,系统启动时就会自动执行这句命令,从而启动用户空间的应用脚本。
板卡出厂自带的启动脚本,如有需要统筹管理多个启动脚本,则可修改此对脚本。
#!/bin/sh if [ -e /userdata/apps/run.sh ];then cd /userdata/apps && ./run.sh fi
#!/bin/sh # Kill your app when shutdown system. For example: # killall facialGate
通常用户的程序启动后就不会退出,所以要在程序执行命令后面添加“&”使之在后台运行,这样就不会阻塞其它启动脚本的运行。
/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
全部0条评论
快来发表一下你的评论吧 !