今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)
本人所用树莓派4B 装载的系统与版本如下:
版本可用命令 (lsb_release -a) 查询:
Opencv 版本是4.5.1:
紧接着上篇文章学习的串口通信,今日学习如何让树莓派开机自动启动python脚本:
文章提供测试代码讲解,整体代码贴出、测试效果图
目录
学习目的:
在pi目录下创建一个启动脚本文件:
创建文件startboot.sh:
startboot.sh代码如下:
设置文件权限:
测试startboot.sh文件:
加入启动文件到启动项:
使用/etc/rc.local:
然后重启树莓派检验:
关闭正运行的脚本:
网上学习资料贴出:
学习目的:
home/pi目录下有个串口测试程序“Serial_test.py”
这个程序会在运行时发送一句“Hello world!”,并能够回传串口接受的数据
我们需要将其设置为上电启动运行的程序,使其开机后一直挂起后台运行,并在之后使用kill命令关闭它
在pi目录下创建一个启动脚本文件:
创建文件startboot.sh:
文件名:startboot.sh
位置:home/pi/
startboot.sh代码如下:
#!/bin/sh sleep 10 cd /home/pi/ sudo python3 Serial_test.py
sleep 10 可以根据自己脚本特性来设置,时间如果太短,可能会出现脚本不能运行的情况(因为需要保证系统已经启动,基本服务已经运行)
设置文件权限:
sudo chmod 777 startboot.sh
测试startboot.sh文件:
使用
bash -x startboot.sh
来查看脚本执行的详细输出。将显示每行命令的执行情况
以下截图标示了因为我在PC上编辑传输的脚本文件产生的问题:
Windows 风格的换行符(
\r\n
),而不是 Unix/Linux 风格的换行符(\n
)。这通常是因为在 Windows 系统中编辑了脚本文件,然后将其传输到 Linux 系统中执行解决方式也是很简单:
安装
dos2unix
工具,使用以下命令来转换文件:sudo dos2unix startboot.sh
加入启动文件到启动项:
使用/etc/rc.local:
sudo nano /etc/rc.local
注意,在
/etc/rc.local
中使用&
将脚本放到后台运行是很重要的,因为/etc/rc.local
需要在启动时尽快退出。
还有其余的将脚本添加入启动项的方法:这里就不解释了:
使用systemd服务、使用
cron
的@reboot
选项
然后重启树莓派检验:
sudo reboot
测试成功:
开机初始化等待10秒结束后,脚本通过串口传来了“Hello World!”,之后也能随时发送测试字符串给树莓派,脚本也会相应回传接收到的信息:
关闭正运行的脚本:
1、使用
ps
命令查找脚本的PID。例如: 我的脚本名为startboot.sh
ps aux | grep startboot.sh
这将会列出所有包含
start_script.sh
的行,其中通常包括脚本的进程ID(PID)。2、一旦找到了PID,使用
kill
命令来终止它:sudo kill PID
将
PID
替换为你找到的进程ID:3、关闭python后台脚本:
但我们的启动文件还打开了一个python脚本在后台运行,因此还有用差不多的方式关闭它:
ps aux | grep python
sudo kill PID
网上学习资料贴出:
树莓派4B设置开机运行python脚本_树莓派4b设置开机启动脚本-CSDN博客