树莓派开机执行脚本

文章介绍了如何使用crontab的@reboot命令和/etc/init.d/目录下的bash脚本来创建开机启动服务,并确保在网络连接成功后才启动。涉及的步骤包括编写bash脚本,设置执行权限,以及使用update-rc.d添加服务。同时,文章提供了一个网络探测的示例,确保服务在能访问网络时启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


移步原文网站,浏览最新博客。

crontab

crontab -e

在编辑器里面输入@reboot后面跟上你的脚本执行代码

@reboot /home/user/test.sh 

保存即可。Ok,脚本现在已经会在开机时自动运行了。

/etc/init.d/

1、新建一个bash脚本文件

#!/bin/sh
### BEGIN INIT INFO
# Provides:            提供者
# Required-Start:      $network $local_fs $remote_fs $syslog
# Required-Stop::      $network $local_fs $remote_fs $syslog
# Should-Start:        $all
# Should-Stop:         $all
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:   服务简介
# Description:         服务描述
### END INIT INFO
#NAME = 服务名称
#脚本路径
export HOME="/home/pi"
#以root身份启动
export USER="root"
#执行脚本
nohup python /home/pi/ssd1306/ssd1306.py >/home/pi/ssd1306/ssd1306.log 2>&1 &
exit 0

2、将这个bash脚本复制到/etc/init.d/

sudo cp /home/pi/ssd1306/ssd1306 /etc/init.d/ssd1306

3、将这个bash脚本设置为可执行

sudo chmod +x /etc/init.d/ssd1306

4、将the_bash文件加入服务

sudo update-rc.d /etc/init.d/ssd1306 defaults

网络链接成功之后启动

部分服务的启动需要网络连接成功之后才可以进行,因此可以在开机需要启动的脚本上添加网络连接探测

while true
do
  ping -c 1 -s 1 www.baidu.com
    if [ $? != 0 ]
    then
      echo " ping fail "
      sleep 5
    else
      echo " ping ok"
      启动你的服务
      break
    fi
done

这样的话网络连接成功之后才会启动你的服务,直接采取crontab和/etc/init.d/的方法网络连接会失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

red-fox-yj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值