项目中需要,在开机的时候,加载一个usb驱动模块和执行一个应用程序。
操作如下:
加载usb驱动模块:sudo insmod /home/pi/sharedir/drv/artosyn_usb_8020.ko
执行应用程序:sudo ./single_xyw&
首先参考通用的Linux的开机自启动进程的方法:
自己写一个 shell脚本放在/etc/profile.d/目录下面。
脚本内容如下:
sudo insmod /home/pi/sharedir/drv/artosyn_usb_8020.ko
cd /home/pi/sharedir/transparent-test/
sudo ./single_xyw&
通过尝试此方法,开机启动后使用top和ps分别查看,代码能够运行。
使用时,需注意window下写的shell脚本在Linux下执行的问题。刚开始的时候,我在window下编写好了shell脚本,然后拷贝到Linux下执行,发现一只报错误:
bad interpreter: No such file or directory
参考如下解决:
https://blog.csdn.net/weixin_30460489/article/details/99409999
可能出现的问题:
就是需要启动的应用程序会启动两次,如下,应用程序single_fc_no1_6有两个进程,并有不同的pid,kill掉一个进程后,还会剩下一个进程。通过查看目录:/etc/profile.d/下,发现还有一个文件video_stream.sh~文件,应该是文件video_stream.sh处于编辑的时候,被关闭了,生成的一个备份文件。删除文件video_stream.sh~后,再次掉电从起,进程只有一个。就不会出现一个进程开机时多次启动的问题了。