首先与树莓派开机自动运行程序的教程非常多,但在这里有一个声明
如果运行的程序不需要使用桌面窗口,则所有的方法都可以使用
如果运行的程序需要使用桌面窗口,比如使用了QT,那么则需要通过桌面启动的方式进行启动。
很多教程上说,使用桌面启动的方式会导致每次启动桌面都会运行一次脚本,比如当使用远程VNC访问桌面的时候还会重启一次。
但是我的树莓派并没有出现远程VNC连接桌面二次启动的情况,所以我并没有去管这个东西,但是如果你的树莓派真的发生VNC远程连接进行二次启动的情况,我相信你也可以通过程序的方式来避免这个问题!!!
或者需要较大的延时,以达到使得桌面启动的情况下进行启动的目的(没有试过)
下面开始我的教程:
1、首先我们创建一个 sh 文件:
pi@raspberry:~ $ nano start_up.sh
在里面输入一下内容,请注意所有内容均使用绝对路径:
#!/bin/sh
touch /home/pi/start_up.txt
chmod /home/pi/start_up.txt
echo "start succefully" >> /home/pi/start_up.txt
ctrl+o保存,enter,ctrl+x离开
将保存的文件赋予执行权限
pi@raspberry:~ $ chmod start_up.sh
2、我们测试是否有效,用文件管理器执行pi下面我们创建的start_up.sh
如果在pi下面出现了start_up.txt文件,并且内容出现了start succefully,证明这个sh文件是有效的
3、在/home/pi/.config/目录下新建一个名为 autostart 的文件夹:
pi@raspberry:~ $ mkdir .config/autostart
在 autostart 下新建一个文件:
pi@raspberry:~ $ nano .config/autostart/start_up.desktop
文件内容:
[Desktop Entry]
Type=Application
Name=testboot
NoDisplay=true
Exec=/home/pi/start_up.sh
此时我们执行 sudo reboot 命令重启树莓派就会执行我们第一步制作的 sh 文件的内容,可以在 pi 文件夹下面看到 start_up.txt 文件
4、最后我们如果要执行 Python 脚本,我们需要修改我们第一步创建的 sh 文件
在末尾添加:
sudo -H -u pi /usr/bin/python3 /home/pi/test/runhe.py
可以修改解释器的位置,可以修改执行的 Python 脚本文件。