树莓派4B学习笔记8:开机自启动Python脚本_kill关闭后台脚本

今日继续学习树莓派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博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值