精帖  树莓派开机自动启动程序教程使用技巧

By 超级版主

2023-05-19 03:26:03

浏览量2934

已赞4

如何让树莓派开机自己运行程序,分享两个方法


一、使用rc.local

需要先修改/etc/rc.local文件,输入下面命令进行修改。

sudo nano /etc/rc.local
进入文件后(如下图)在fi与exit 0中间添加你需要启动的程序地址, 我这里的python3 /home/pi/led.py

Image


二:使用systemd

以下面LED程序为例

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
GPIO.setup(35, GPIO.OUT)

while True:
    GPIO.output(35,GPIO.HIGH)
    print("HIGH")
    time.sleep(1)
    GPIO.output(35,GPIO.LOW)
    print("LOW")
    time.sleep(1)

1.通过systemd配置python程序开机自启动的步骤如下:编写unit文件,文件名要以.service结尾,这里我保存为/home/pi/mystart.service

[Unit]
Description=My service
After=network.target

[Service]
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/python3 -u /home/pi/myled.py
User=pi

[Install]
WantedBy=multi-user.target

这个例子能够完成基本的应用自启动,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定义为多用户运行模式。


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

sudo cp /home/pi/mystart.service /etc/systemd/system/mystart.service
使用systemctl管理服务,启动服务

sudo systemctl start mystart.service
此时可以看到led闪烁,查看服务状态

systemctl status mystart.service
Image

 使用journalctl查看该服务的输出

journalctl -u mystart -e
Image

sudo systemctl stop mystart.service
Image

设置开机自启动

sudo systemctl enable mystart.service
Image

添加或修改配置文件后,需要重新加载

sudo systemctl daemon-reload
使用systemd配置程序开机自启动可以更方便的查看程序输出的信息、以及程序运行的错误,并且可以设置程序崩溃后自动重启,如下图所示:

Image

使用journalctl -u mystart -e查看,可以看到程序错误退出5s后会再重启。


两种方式都可能遇到的问题:

在不指定用户的情况下,两者默认使用root用户执行,这时是不能使用一些安装在pi用户下的python库的。使用 sudo pip3 install packagename代表进行全局安装,安装后全局可用。pip3 install packagename代表仅该用户的安装,安装后仅该用户可用。所以如果你当时装库时使用后者,那么运行时就要指定用户,否则会报错找不到库。

解决方法有两种:

使用sudo pip3 install packagename再重装一遍;

在运行命令中指定用户

使用rc.local指定用户启动

su - username -c 'command'

下图是以pi用户启动myled.py程序

Image




本文章最后由 超级版主2023-11-12 22:26 编辑
发表评论
请先 注册/登录 后参与评论

已有1 发布

默认   热门   正序   倒序
  • 2F
    guest2023-05-20 16:02:41   
    树莓派极客网 - 中文创客社区的共享平台 资源丰富的树莓派交流论坛 - Powered by raspi https://clck.ru/34TxBX advertising network https://clck.ru/Noky9 $5 for registration https://clck.ru/34NAZw 1USD for registration https://clck.ru/349J4j beautiful girls
    0
查看更多评论
(4) 分享
分享

扫二维码或复制链接分享该篇文章

取消
已有0次打赏
本站免责声明
1、本站资源,均来自网络或个人用户发布,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !

侵权删除请致信 E-Mail:cxg88@qq.com