赞
踩
友情提醒(一开始大概有400字的流水账,热豆腐哥可直接移步最终解决方法)
由于项目需要,笔者最近有机会玩一玩树莓派,所用的树莓派版本为4B(进口原装正版),系统版本为官方提供的raspbian系统,在经历了一个礼拜的艰苦奋战后,终于完成了项目中树莓派上python程序的编写,为应对之后的户外测试,需求我的python程序能够上电自启动,我突然灵光一闪,因为我之前在zedboard上实现过上电自启动一个tcp的服务器程序,于是我采用了以前的方法,也就是方法一。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
方法一:(目前未找到不可行原因)
第一步:保证自己的python程序正常可运行
第二步:在python程序同目录下新建一个脚本文件start.sh,在里面写python程序的启动命令行指令,例如“python3 xxxx.py“
第三步:打开根目录的etc文件夹下的rc.local文件(tips:该文件是隐藏文件,有些小伙伴直接用ls可能看不到)在最后的exit 0那一行上面加上一条启动脚本的命令,例如./start.sh(执行路径视你自己的脚本文件所在路径为准)
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ojbk 搞定!按下重启开关,给自己泡一杯咖啡,缓解长时间的疲惫,来吧!ssh远程登录,ps指令看一下!???程序没运行?,手中的咖啡瞬间不香了,没想到根本不起效果,大概十遍反复重启后,我开始冷静了下来,陷入了沉思,也许是因为系统不同(zedboard上是ubuntu的系统,虽然都是相同的unix内核)?迅速的百度一下,找到了一个新的解决方案,
方法二:
参照了这位大佬的解决方法,简介高效,ssh远程登陆后发现是可行的,python程序确实运行了,但是!! 我突然发现如果我不远程登录的话,他就不会运行,也就是说ssh远程登录相当一个触发前提条件?在经历了心情起伏之后,我又找到一个解决方法,在这个方法上加以改进,也就是我的最终解决问题的方法。
最终解决方法
方法三:也就是建一个桌面自启动程序xxx.desktop,看到桌面自启动这几个字,大家可能会想桌面在哪里,所谓的桌面就是GUI界面,那么很容易联想到跑着官方系统的树莓派有输出hdmi信号,而且是以默认的pi用户登录的,那么就可以理解了,我需要把python程序做成桌面自启动程序,且是能够被pi用户执行的。
创建一个桌面自启动程序的大致过程如下:
第一步:进入目标目录下 cd /home/pi/.config/autostart (注意.config文件是个隐藏文件,可以用指令ls -al 看到)
第二步:新建一个xxx.desktop 文件
第三步:填写desktop文件里的内容,下图只是给个示例,核心就是第四行的指令,第五行是程序的图标图片,这两行的内容需要小伙伴们根据自己的情况填写,其他行的内容均可不做修改照抄就行。
貌似到这边就搞定了,但重启了一下依旧不行,我不禁再次陷入了沉思,自启动程序的本质是模仿我们手动启动程序的操作,每次我们手动启动python程序都会开个命令行再输指令执行,难道我就缺失开命令行的这一步操作吗?为了验证自己的猜想,我找了开命令行的指令并把它补充了上去,即完善了下第四行。这次终于搞定了!
tips1:关于lxterminal指令的进一步了解,可以使用lxterminal -h进行查看
tips2:如果树莓派没有连接显示器,可能会出现添加了启动文件后,开机不会自动启动的问题,此时需要修改/boot/config.txt文件
sudo vim /boot/config.txt
找到hdmi_force_hotplug=1这一行,把前面的#号删除掉,请以图片为准。
退出保存。
小伙伴们阅读完如有疑问或好的建议与意见可在下方留言哦!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。