树莓派开机自动运行python程序

本文以一个简单的python程序为例,介绍树莓派开机程序自启动的两种方式,以及其中可能遇到的问题。python程序myled.py如下,保存路径为/home/pi/myled.py。
在这里插入图片描述

一、使用rc.local

编辑/etc/rc.local文件
在这里插入图片描述
sudo nano /etc/rc.local
在 fi 和 exit 0 之间加入要执行的命令
python3 /home/pi/myled.py,然后重启,可以看到led闪烁,程序开机执行。
如果程序未能正常运行,可以使用
sudo systemctl status rc-local
查看程序报出的错误,这是很重要的。

使用该方式有两个缺点:
1.无法看到程序输出信息
2.程序崩溃后不会自动重新启动

二、使用systemd

通过systemd配置python程序开机自启动的步骤如下:

1.编写unit文件,文件名要以.service结尾,这里我保存为/home/pi/mystart.service
在这里插入图片描述
这个例子能够完成基本的应用自启动,unit文件还有很多参数,可以提供更强大的功能,更多可以自行百度,这里仅对上面例子中使用的选项进行解释。
[Unit]部分中,Description是对该服务的描述,After=network.target表示在网络服务启动之后启动该服务。
[Service]部分中,Restart=on-failure和RestartSec=5表示服务运行失败后,隔5s重新启动;ExecStart表示服务启动时执行的命令,这里执行myled.py程序,-u参数使python程序输出到journal中,这个后面会提到,需要注意文件要使用绝对路径;User=pi表示在pi用户下执行,默认应该是root用户。
[Install]部分中,WantedBy=multi-user.target定义为多用户运行模式,具体我也不太了解。

1.将该文件mystart.service复制到/etc/systemd/system目录下

sudo cp /home/pi/mystart.service /etc/systemd/system/mystart.service

2.使用systemctl管理服务
*启动服务

sudo systemctl start mystart.service

此时可以看到led闪烁

*设置开机自启动

sudo systemctl enable mystart.service
《树莓派开机自动运行python程序的两种方式》
*关闭开机自启动
sudo systemctl disable mystart.service
《树莓派开机自动运行python程序的两种方式》
资料源于网络!

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值