作者:潇洒舞者_899 | 来源:互联网 | 2023-07-24 11:40
因为项目的需要树莓派开机自启动python文件,自己大概试了多种方法才成功。首先我这里的python脚本文件是不断循环运行的,而且要启动4个python脚本文件,我这里重点写一下网
因为项目的需要树莓派开机自启动python文件,自己大概试了多种方法才成功。
首先我这里的python脚本文件是不断循环运行的,而且要启动4个python脚本文件,我这里重点写一下网上常用的2种方法。
一.桌面自启动(必须是利用桌面运行):在.config文件中的autostart文件(如果没有就新建一个)新建一个以.desktop为后缀的文件。内容为
[Desktop Entry]
Type=Application
Name=testboot
NoDisplay=true
Exec= python3 /home/pi/testboot.py
保存成功后 在terminal窗口sudo reboot即可。
注意:这种方式是依赖桌面的,所以只要一进入桌面,就要运行一个,比如,远程连接一次就需要运行一次。采用远程连接就容易死机(我自己就被这种方式弄晕了,后面只能采用直接用显示屏了)。
二.使用rc.local文件:
在terminal窗口 cd /etc 进入当前路径sudo nano rc.local ,在exit 0 前输入python3 /home/pi/testboot.py 保存可以成功,但是重启可能不成功。因此在exit 0 前输入 su pi -c “python3 /home/pi/testboot.py &” 这种写法更好。
su pi :是以pi用户执行。 -c:执行完回到当前的用户。
作者:xiao韩
来源:CSDN
原文:https://blog.csdn.net/qq_28821995/article/details/82774380
版权声明:本文为博主原创文章,转载请附上博文链接!
方法二的另一家之言:
在你的树莓派上,选择一个文本编辑器编辑/etc/rc.local文件。你必须使用root权限编辑,例如:
sudo vim /etc/rc.local
在注释后面添加命令,但是要保证exit 0这行代码在最后,然后保存文件退出。
WARNING(注意)
如果你的命令需要长时间运行(例如死循环)或者运行后不能退出,那么你必须确保在命令的最后添加“&”符号让命令运行在其后台。
python /home/pi/myscript.py &
这个“&”符号允许命令运行在一个指定的进程中,然后继续运行启动进程。
另外,确保文件名使用绝对路径,而不是相对于你的home目录的相对路径。例如:使用/home/pi/myscript.py而不是用myscript.py。
作者:bill0-Ng
来源:CSDN
原文:https://blog.csdn.net/b108074013/article/details/47443871
版权声明:本文为博主原创文章,转载请附上博文链接!
三、树莓派把一个python脚本作为服务运行,配置开机自动启动
发现简单的把python脚本加到rc.local好像无法自动启动,于是找到了下面的方法,做成一个服务。
首先写个Python脚本
文件保存在/home/pi/script/ledblink.py
#!/usr/bin/env python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(21,GPIO.OUT)
while True:
try:
GPIO.output(21,True)
time.sleep(1)
GPIO.output(21,False)
time.sleep(1)
except (KeyboardInterrupt, SystemExit):
GPIO.close()
print “exit”
开机启动脚本
保存脚本为/etc/init.d/ledblink文件
#!/bin/bash
/etc/init.d/ledblink
BEGIN INIT INFO
Provides: embbnuxRequired-Start: $remote_fs $syslogRequired-Stop: $remote_fs $syslogDefault-Start: 2 3 4 5Default-Stop: 0 1 6Short-Description: ledblink initscriptDescription: This service is used to manage a led
END INIT INFO
case “$1” in
start)
echo “Starting LED Blink”
/home/pi/script/ledblink.py &
;;
stop)
echo “Stopping ledblink”
#killall ledblink.py
kill $(ps aux | grep -m 1 ‘python /home/pi/script/ledblink.py’ | awk ‘{ print $2 }’)
;;
*)
echo “Usage: service ledblink start|stop”
exit 1
;;
esac
exit 0
设置python脚本开机启动
sudo chmod +x /etc/init.d/ledblink
这样启动改脚本用service 命令就可以
sudo service ledblink start#启动
sudo service ledblink stop#停止
最后设置开机启动就好了
sudo update-rc.d ledblink defaults
这样就完工了,重启树莓派就会发现led自己闪烁了,停止用sudo service ledblink stop就行