上位机图像处理和嵌入式模块部署(树莓派4b开机启动脚本)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        编写好程序之后,一般要求程序开机启动后就可以运行。所以这个时候,我们一般就会把程序流程放在开发板的启动脚本当中。如果程序比较简单的话,直接启动程序;当然程序复杂一点的话,就会有一个启动脚本,这样其他程序也可以通过这个启动脚本来运行。

1、准备测试程序

        这里的测试程序是一段python脚本内容,我们假设它为run.py,内容如下所示,

#!/usr/bin/pythonimport os
import sys
import re
import timecnt = 0
while True:cnt += 1time.sleep(1)print(cnt)

2、先保证脚本运行是ok的

        想要开发板开机的时候,就执行我们需要的程序,一般首先要保证程序是ok的。这种情况下,可以预先测试下,

feixiaoxing@raspberrypi:~/Desktop $ python run.py
1
2
3

3、准备在rc.local下面添加启动脚本

        一般我们添加程序都是在rc.local下面添加的。这个rc.local位于/etc目录下面。但是这个目录一般属于root的管理权限,所以需要编辑一下rc.local文件。为了方便编辑,我们把/home/feixiaoxing/.vimrc拷贝到/root目录下,.vimrc的内容如下,

set nocompatible
set backspace=2
set number
set incsearch

        有了这个.vimrc,我们就可以用vi编辑/etc/rc.local文件了,相关内容在exit 0前面添加即可,

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; thenprintf "My IP address is %s\n" "$_IP"
fisudo python /home/feixiaoxing/Desktop/run.py &exit 0

4、测试和验证

        测试方法比较简单,只需要sudo reboot一下开发板,接着通过ps aux | grep python确认程序在不在就可以了。

feixiaoxing@raspberrypi:~ $ ps aux | grep python
feixiao+    1066  0.0  0.8  63168 34240 ?        S    07:47   0:00 /usr/bin/python3 /usr/share/system-config-printer/applet.py
root        1193  0.0  0.0  10672  3712 ?        S    07:47   0:00 sudo python /home/feixiaoxing/Desktop/run.py
root        1203  0.0  0.2  16180  8832 ?        S    07:47   0:00 python /home/feixiaoxing/Desktop/run.py
feixiao+    1529  0.0  0.0   6088  1920 pts/0    S+   08:06   0:00 grep --color=auto python

5、更常见和通用的方式

        这边这是一个程序的启动,更为常见的方式是启动一个auto.sh文件。这样后续如果还要启动其他的文件,只需要把相关的文件在auto.sh里面添加即可。

6、想查看启动程序的log怎么处理

        这一点通过重定向就可以,假设程序名是process,那么可以在auto.sh添加这样的内容,

./process >> log.txt &

        其中 >> 表示重定向,&表示脚本执行结束后,相关程序还能运行。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu系统开机长

Ubuntu系统开机长 1. 检查开机自启动软件的所占时间2. 将耗时最高的禁止开机自启动 1. 检查开机自启动软件的所占时间 systemd-analyze blame2. 将耗时最高的禁止开机自启动 sudo systemctl disable networking.service这个耗时是有阈值的,一般大于15s的算&#x…

k8s-pod 控制器

文章目录 k8s-pod 控制器无状态服务与有状态服务无状态服务pod 控制器ReplicationController(RC)ReplicaSet(RS)Label 和 Selector Deployment创建滚动更新回滚版本扩容/缩容暂停和恢复 StatefulSet创建扩容/缩容更新RollingUpdate->金丝雀发布OnDelete 删除 DaemonSet节点选…

JumpServer 堡垒机架构

需求背景: 最近由于项目审计需要,要求企业加固应用和系统,顺便加固一些日常使用的软件和系统,远程接入访问安全问题。 需求目的: 部署实施: 1、系统安装 安装执行 curl -sSL https://resource.fit2clou…

Spring 注解开发详解

1. 注解驱动入门案例介绍 1.1 需求描述 1.需求:实现保存一条数据到数据库。 2.表结构:create table account(id int primary key auto_increment,name varchar(50),money double(7,2)); 3.要求:使用spring框架中的JdbcTemplate和DriverMana…

问题记录:交换两行printf -打印结果不同

环境 os: windows IDE: iar toolchain:iar9.32 board: STM32F429 问题描述 同一个float变量,用两行printf打印,先%d打出来,再%.3f打出来,前者输出32(正确),后者打出来是0.000。顺…

贝叶斯网络(概念、应用、实例)

目录 一、贝叶斯网络基本概念 1.1主要组成 1.2概率模型 1.3应用场景 1.4推理方法 1.5学习 二、贝叶斯网络在机器学习中的应用 三、应用实例 3.1分类 3.2推荐系统 3.3自然语言处理 一、贝叶斯网络基本概念 贝叶斯网络,也称为信念网络或有向无环图模型&am…

微信小程序开发六(自定义组件)

自定义组件的创建: 如何创建: 右键选择新建component 创建完成之后需要打开app.json,这是全局使用这个组件,想要单独的页面使用,就在当前页面的json文件中定义 "usingComponents": {"my-zj": &quo…

电子邮件免费版有哪些?免费注册电子邮箱

电子邮件有付费版和免费版两种类型,付费版通常具有更大的电子邮箱容量和更强大的电子邮箱功能。但是对于我们个人用户或者是中小型企业来说注册电子邮箱免费版的就够日常使用了。电子邮件的免费版提供商有Zoho Mail、微软、腾讯等,今天我们就来具体了解下…

电子温度计不准需要怎么处理?

电子温度计不准需要怎么处理? 首选将温度计完全浸入温度为0℃左右的水中,使温度计指示值与0℃相等,拿出测量待测物的温度。其次将温度计完全浸入温度为100℃左右的水中,使温度计指示值与100℃相等,拿出测量待测物的温…

丙级资质升级乙级实操:河南灌溉排涝项目所需材料清单

丙级资质升级乙级实操:河南灌溉排涝项目所需材料清单 在河南灌溉排涝项目中,从丙级资质升级到乙级资质是一个重要且复杂的过程。为了成功完成这一过程,需要准备一系列详尽且符合规定的材料。以下是针对此实操所需的关键材料清单:…

产品推荐 | 基于Intel (Altera) Cyclone IV 打造的水星Mercury CA1核心板

01 产品概述 水星Mercury CA1核心板结合了Intel Cyclone IV FPGA、通用接口如USB 2.0和Gigabit Ethernet,具备大量的LVDS I/O、大容量DDR2 SDRAM和大量硬件乘法器,这些使得水星CA1核心板非常适合数字信号处理、网络、高速I/O以及使用Intel NiosII软处理…

Laravel 6 - 第六章 服务容器

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

OpenAI 笔记:chat API

聊天模型接受一系列消息作为输入,并返回模型生成的消息作为输出。 1 导入openai 的api key from openai import OpenAIclient OpenAI(api_key***) 2 调用聊天API completion client.chat.completions.create(model"gpt-3.5-turbo",messages[{"…

TypeScript 中 interface 和 type 的使用#记录

一、interface:接口 interface A{label: string; }const aa ((aObj: A) > {console.log(aObj.label);//123return aObj.label; })aa({label: 123}) 1、可选属性 interface A{label: string;age?: number; } 2、只读属性 interface A{label: string;age?:…

Go Sync并发包之errgroup

你是否写过一个函数,它之所以很长,是因为它要完成很多任务,即使这些任务之间并不相互依赖? 你是否写过一个很长的函数,因为它要完成很多任务,即使这些任务并不相互依赖?我就遇到过这种情况。 想…

BRC铭文NFT铸造质押挖矿系统开发运营

区块链技术的不断演进与应用拓展,为数字资产领域带来了更多可能性。BRC铭文NFT铸造质押挖矿系统的开发与运营,将为用户提供一种全新的数字资产体验,下文将介绍其版/需求方案/逻辑项目。 1. 系统概述 BRC铭文NFT铸造质押挖矿系统旨在结合区块…

数据库之数据库恢复技术思维导图+大纲笔记

大纲笔记: 事务的基本概念 事务 定义 用户定义的一个数据库操作系列,这些操作要么全做,要么全不做,是一个不可分割的基本单位 语句 BEGIN TRANSACTION 开始 COMMIT 提交,提交事务的所有操作 ROLLBACK 回滚&#xff0c…

电商技术揭秘三十一:智能风控与反欺诈技术

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘二十八:安全与合规性保障 电商技术揭秘二十九:电商法律合规浅析 电商技术揭秘三十:知识产权保…

科林Linux_3 进程

一、进程基础 操作系统基础的执行单元,调度单位 静态数据:只占用磁盘空间,不消耗其他资源 动态数据:磁盘 内存 CPU 1. 编译器将源码编译成一个可执行文件.exe/.elf 2. 运行后系统生成一个同名的进程 程序是进程的静态表现&a…

网络变压器的磁芯在使用中起着至关重要的作用

网络变压器的磁芯在使用中起着至关重要的作用。它主要有以下几个功能: 1. **提供磁通路径**:磁芯为变压器中电磁感应提供了闭合的磁通路径。这有助于提高变压器的效率,因为它确保了磁场能够有效地通过绕组。 2. **减少能量损失**&#xff1…