用户您好,请详细描述您所遇到的问题:
你好,我在X3派的开发板上编写了一个应用程序,可执行权限都设置好了。然后按照网上的一些建议做了设定,发现好几种方法都不能生效,有的方法只生效一次后再次上电开机就不行了,剩下的几个方法都不行,下面是我的几种方法的操作,请帮助解决一下,非常感谢:
第一种:编辑“/etc/rc.local”,把启动程序的shell命令输入进去即可(要输入命令的全路径),类似于windows下的“启动”。
使用命令 vi /etc/rc.local
然后在文件最后一行添加要执行程序的全路径。内容如下:在“/etc/rc.local”中加一行“/home/sunrise/test/build ./test”,或者两行“cd /home/sunrise/test/build”和“./test”。这个操作之后,只是第一次上电能运行,再次关机上电开机后,没有看到程序运行,然后进去看 vi /etc/rc.local ,发现里面的内容被清空了,不知道这个是什么原因?
第二种方法:在"/etc/init.d”下建立一个dnnbody.sh的脚本文件,通过拷贝其他脚本文件,修改名称和里面的内容,然后保存即可。
如下:修改里面的内容为
cd /home/sunrise/dnn_body_detect/build
./body_detect
exit 0
最后保存,执行下面的设定
chmod +x dnnbody #增加执行权限
这个操作之后,上电重启没有发现程序运行,然后通过SSH终端进去后,这个终端里面就立即运行起来程序了,也就是说,这个方法在没有任何终端连接到开发板的时候,程序是没有运行的,只有当有一个终端连接上去后,开发板的系统才让程序运行起来,这个不是上电就自动运行的效果啊,不知道这个问题如何解决?
第三种方法:也是编写一个shell文件,比如dnndetect.sh ,使用vim dnndetect.sh 打开后,添加内容如下:
#!/bin/bash
cd /home/sunrise/dnn_body_detect/build
sudo ./body_detect
exit 0
最后保存。
2,将这个dnndetect.sh文件拷贝到 /etc/profile.d/这个目录下,赋予此文件可执行权限,如下:
chmod a+x dnndetect.sh
3,重启系统即可完成,经过自己的验证操作,发现和第二种方法一样的问题,没有终端连接上去的时候,系统不运行这个应用程序,只有当一个终端连接上去后,系统才让这个应用程序运行起来,请帮助解决一下,非常感谢!
如果能提供其他的上电直接运行自己的应用程序的方法或步骤,请多多提供,多谢了!
-
系统软件版本: (通过 cat /etc/version 获得)
-
问题涉及的技术领域: (硬件、操作系统、驱动、其他)
-
问题描述:(尽可能详细的描述在进行什么功能的开发或者测试,发现了什么问题,问题现象,并且提供预期的结果)
-
复现概率:(必现、高、中、低,并描述大致的概率数值) 已进行的排查措施、分析及结果:
-
硬件问题先排查供电和时钟
-
驱动问题先排查外设的供电、复位和时钟
-
功能异常,先排查一下是不是运行的代码和demo存在差异,修改不多的情况下直接用对比软件先对比
-
提供必要的问题日志:
-
软件上是否有做自定义修改: