树莓派部署项目,并开机自启

473 阅读1分钟
  1. 编写启动脚本,到项目的根目录下,创建一个start.sh文件
vi start.sh


#!/bin/bash
cd /home/pi/app/python/escl
source venv/bin/activate
python xxx.py

  1. 添加启动文件的可执行权限
chmod 777 start.sh
  1. 将启动脚本添加到开机自启
sudo vi /etc/rc.local

su pi -c "exec /home/pi/app/go/iot/start.sh"

(注意要在exit 0 之前)
  1. 注意点(此处被坑了很久) 我发现配置了rc.local文件,但是一直开机无法自启,一开始以为是rc.local的问题,网上也有很多说执行权限的问题,但是我这里并不是这个原因. 之后用了一个命令找到了问题所在:
sudo systemctl status rc-local

这个命令可以查看是否自启成功 我看到我的程序因为在自启后post请求失败,然后程序报错了,所以我就猜想是不是因为系统启动后wifi还没有连接,导致http请求错误.于是我就将请求滞后. 其二,我看到我的程序中路径找不到,但是我直接在项目中执行程序目录是可以找到的, 所以我就猜测是因为执行路径的问题,因为我在rc.local中是直接运行我项目中的可执行文件,所以我在项目中创建一个sh脚本文件,然后再脚本文件中执行项目,最后把脚本文件的路径加入到rc.local中,这样就ok了