树莓派4B设置开机运行python脚本

因为一个项目,需要两个树莓派之间通信,即一个主机建立SOCKET服务,并负责控制电机,一个从机负责连接主机,进而控制控制电机运转。
目标:二者同时开机,而后从机连上主机。

一、在etc/init.d目下创建一个控制文件

(一)创建文件

文件名:startboot
位置:etc/init.d
操作:sudo chmod -R 777 /etc/init.d
因为要把文件拷贝至init.d文件夹,所以需要修改文件夹的权限。
【注意:etc前面记得加上/】如果输入sudo chmod -R 777 etc/init.d 会提示:chmod: 无法访问’etc/init.d’: 没有那个文件或目录
startboot代码如下:

#!/bin/sh
#/etc/init.d/startboot
### BEGIN INIT INFO
# Provides:startboot
# Required-Start:$remote_fs $syslog
# Required-Stop:$remote_fs $syslog
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description: startboot
# Description: This service is used to start my applaction
### END INIT INFO

case "$1" in
     start)
     echo "start your app here."
     su pi -c "exec ~/Motor/startboot.sh"
     ;;
     stop)
     echo "stop your app here."
     ;;
     *)
     echo "Usage: service startboot start|stop"
     exit 1
     ;;
esac
exit 0

(二)设置脚本可执行权限

sudo chmod 777 /etc/init.d/startboot
【注意】千万别忘记这条,折腾了我半天

(三)将该脚本作为服务设置开机自动加载

sudo update-rc.d startboot defaults
【注意】千万别忘记这条,折腾了我老半天

二、在pi目录下创建一个启动脚本文件

(一)创建文件startboot.sh

文件名:startboot.sh
位置:home/pi/Motor
startboot.sh代码如下:

#!/bin/sh
sleep 10
cd /home/pi/Motor
sudo python server_relay_motor.py

说明:sleep 10 可以根据自己脚本特性来设置,时间如果太短,可能会出现脚本不能运行的情况(因为需要保证系统已经启动,基本服务已经运行)

(二)设置文件权限

sudo chmod 777 startboot.sh
【注意】千万别忘记这条,折腾了我又一个半天

三、将要启动的脚本放置于startboot.sh中指定的目录

代码中的目录:/home/pi/Motor
代码中的文件:server_relay_motor.py
【注意】此时可以用命令先测试startboot.sh是否有效
命令:sudo ./startboot.sh
如果提示权限不够,则需再执行
命令:sudo chmod 777 statrboot.sh

四、重启树莓派

sudo reboot

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值