树莓派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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/707157.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[Algorithm][贪心][柠檬水找零][将数组和减半的最少操作次数][最大数][摆动序列]详细讲解

目录 1.柠檬水找零1.题目链接2.算法原理详解3.代码实现 2.将数组和减半的最少操作次数1.题目链接2.算法原理详解3.代码实现 3.最大数1.题目链接2.算法原理详解3.代码实现 4.摆动序列1.题目链接2.算法原理详解3.代码实现 1.柠檬水找零 1.题目链接 柠檬水找零 2.算法原理详解 …

网络安全 - ARP 欺骗原理+实验

APR 欺骗 什么是 APR 为什么要用 APR A P R \color{cyan}{APR} APR(Address Resolution Protocol)即地址解析协议,负责将某个 IP 地址解析成对应的 MAC 地址。 在网络通信过程中会使用到这两种地址,逻辑 IP 地址和物理 MAC 地址&…

短剧APP小程序开发之小程序内存管理挑战:短剧缓存与释放策略探讨(第二篇)

在上一篇帖子中,我们探讨了小程序内存管理的限制以及缓存策略的设计。本篇将进一步探讨释放策略的具体实现以及优化方案,以支持大量短剧内容的加载和播放。 释放策略的具体实现 监听内存警告:小程序提供了监听内存警告的API,开发…

【PL理论】(22) 函数式语言:多参数 | 柯里化 (Currying) : 将多参数函数实现为返回一个函数的函数

💭 写在前面:本章我们将继续讲解函数式语言,介绍多参数,着重讲解柯里化的概念,将多参数函数实现为返回一个函数的函数。 目录 0x00 多参数(Multiple Arguments) 0x01 柯里化(Curr…

Android framework的Zygote源码分析

文章目录 Android framework的Zygote源码分析linux的fork Android framework的Zygote源码分析 init.rc 在Android系统中,zygote是一个native进程,是Android系统上所有应用进程的父进程,我们系统上app的进程都是由这个zygote分裂出来的。zyg…

AI虚拟试穿技术:开启高保真、多场景、多样化服装组合的试穿应用

随着电子商务的快速发展,消费者对于在线购物体验的要求越来越高。特别是在服装领域,消费者渴望能够在购买前直观地了解服装的试穿效果。传统的虚拟试穿技术虽然已有一定的发展,但在不同场景下的高保真度和鲁棒性方面仍面临挑战。为此,我们研发了一种全新的AI虚拟试穿技术,…

电脑开机之后要很久才能进入系统?进入WinPE也是卡顿半天?

前言 小白最近接到了一张很奇怪的电脑维修单,客户说他的工作室电脑开机特别慢,开机之后特别卡顿,在使用的时候也会一卡一卡的。 这事情开始看很简单:估计就是电脑还是机械硬盘,所以开机很慢又卡顿。所以应该是把机械…

vi/vim使用命令

你是否在编辑文件时以为键盘坏了,为什么不能删除呢,为什么不能敲代码呢,等你初识vi,会觉得这个东西为什么设计得这么难用,这篇教程带你熟练得用上这款经典的工具 Vi 是在 Unix 系统上广泛使用的编辑器,Vim …

【车载音视频电脑】嵌入式AI分析车载DVR,支持8路1080P

产品特点 采用H.265 & H.264编解码,节约存储空间、传输流量; 高分辨率:支持8路1080P*15FPS/4路1080P*30FPS、720P、D1等编解码; 支持1张SATA硬盘,取用方便,满足大容量存储要求; 支持1个…

安装台式电脑网卡驱动

安装电脑网卡驱动 1. 概述2. 具体方法2.1 先确定主板型号2.2 详细操作步骤如下2.2.1 方法一2.2.2 方法二2.2 主流主板官网地址 结束语 1. 概述 遇到重装系统后、或者遇到网卡驱动出现问题没有网络时,当不知道怎么办时,以下的方法,可以作为一…

oracle RAC安装 保姆级教程

使用SSHXmanager 我的本地IP是172.17.68.68 服务器配置 [rootrac12-1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #Public IP …

笔记 | 用go写个docker

仅作为自己学习过程的记录,不具备参考价值 前言 看到一段非常有意思的话: 很多人刚接触docker的时候就会感觉非常神奇,感觉这个技术非常新颖,其实并不然,docker使用到的技术都是之前已经存在过的,只不过旧…

网络安全等级保护基本要求解读- 安全计算环境-应用系统和数据安全

概述 越来越多的企业用户已将核心业务系统转移到网络上,Web浏览器成为业 务系统的窗口,应用系统面临更多的安全威胁;并且由于各种原因使得其 存在较多的安全漏洞。 在此背景下,如何保障企业的应用安全,尤其是Web应用…

使用PyMuPDF、Pillow和pytesseract实现PDF文件中文OCR识别

文章目录 一、Win11下安装Tesseract和中文语言包(tessdata)1.1 安装Tesseract OCR引擎1.1.1 下载Tesseract OCR安装包1.1.2 运行安装程序1.2 安装中文语言包(tessdata)1.2.1 下载中文语言包1.2.2 放置中文语言包1.3 配置环境变量1.3.1 打开系统属性1.3.2 编辑环境变量1.4 测…

计算机视觉全系列实战教程:(九)图像滤波操作

1.图像滤波的概述 (1)Why (为什么要进行图像滤波) 去噪:去除图像在获取、传输等过程中的各种噪音干扰提取特征:使用特定的图像滤波器提取图像特定特征 (2)What (什么是图像滤波) 使用滤波核对图像进行卷积运算或非线性运算,以达到去噪或提…

腾讯云EdgeOne对比普通CDN的分别

EdgeOne架构图 普通CDN架构图 ​​​​​​​ 腾讯云EdgeOne对比普通CDN的不同点 服务范围和集成度 腾讯云EdgeOne是一体化的综合平台,不仅提供内容分发功能,还包括安全防护、性能优化和边缘计算等服务。EdgeOne提供了DDoS防护、WAF(Web应…

vue3+vite:动态引入静态图片资源

目录 第一章 前言 第二章 vue2与vue3动态引入静态图片资源 2.1 vue2 webpack动态引入静态图片资源 2.1.1 了解 2.1.2 vue2项目动态引入静态图片资源 2.2 vue3 vite动态引入静态图片资源 2.2.1 了解 2.2.2 require vs import了解 2.2.3 vue3vite 项目动态引入静态图片…

路由器怎么设置局域网?

局域网(Local Area Network,LAN)是指在一个相对较小的地理范围内,如家庭、办公室或学校等,通过路由器等设备连接起来的计算机网络。设置局域网可以方便地实现内部资源共享和信息交流。本文将介绍如何设置局域网以及一个…

12.实战私有数据微调ChatGLM3

实战私有数据微调ChatGLM3 实战私有数据微调ChatGLM3实战构造私有的微调数据集基于 ChatGPT 设计生成训练数据的 Prompt使用 LangChain GPT-3.5-Turbo 生成训练数据样例训练数据解析、数据增强和持久化存储自动化批量生成训练数据集流水线提示工程(Prompt Engineer…

爬虫-模拟登陆博客

import requests from bs4 import BeautifulSoupheaders {user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36 } # 登录参数 login_data {log: codetime,pwd: shanbay520,wp-submit: …