linux开发板开机启动向日葵

news/2024/5/17 6:14:20

硬件:orangepi 5 pro
操作系统:ubuntu 20.4 lts

安装向日葵

根据我的实测,arm架构的ubuntu系统只能安装向日葵提供的麒麟系统的那个版本,具体安装方式官网下载页面有

允许任意用户连接到 X11

使用root用户登录后打开终端输入一下命令,至于X11是什么可以自行搜索,我也一知半解,可以理解为一个图形界面的后端接口

xhost +          #允许任意用户连接到X11

编写python脚本

# coding:utf-8 
import subprocess 
import threading
import time
import os  # 导入 os 模块
from datetime import datetime  # 导入 datetime 模块def is_connected():try:output = subprocess.check_output("ping -c 1 www.baidu.com", shell=True)return "1 packets transmitted, 1 received" in output.decode()except subprocess.CalledProcessError:return Falsedef task_1():# 设置 XDG_RUNTIME_DIR 环境变量os.environ['XDG_RUNTIME_DIR'] = '/run/user/1000'  # 替换为您的运行时文件目录isOpenXRK=FalsexCount=0        #计数while(True):  print("线程依然活着")time.sleep(3)xCount=xCount+1if xCount<10:continueelse:xCount=0# 调用函数来验证联网状态if is_connected():print("已联网")if not isOpenXRK:# 设置 DISPLAY 环境变量#os.environ['DISPLAY'] = ':0'  # 设置显示服务器地址为默认值,经过测试这句可以不要# 启动进程并等待其完成process = subprocess.Popen(['/usr/local/sunlogin/bin/sunloginclient'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)stdout, stderr = process.communicate()# 打印输出和时间print("向日葵客户端输出:", stdout.decode())print("向日葵客户端错误:", stderr.decode())print("时间:", datetime.now().strftime("%Y-%m-%d %H:%M:%S"))  # 输出当前时间,精确到秒isOpenXRK=True# 如果有错误,打印错误信息if stderr:print(stderr.decode())else:print("未联网")print("等待三秒 ")if __name__== "__main__" :task1=threading.Thread(target=task_1,args=())task1.start()print("开启了线程")

使用supervisor管理该脚本开机启动

supervisor的使用方法这里就不赘述了,网上可以搜到很多,是一个进程管理工具

最后贴一张效果图,pi放在家里,刚reboot过,我在外面用外网连的

在这里插入图片描述


http://www.mrgr.cn/p/83033643

相关文章

国家标准信息查询

国家标准信息查询 在我们的项目工作中,经常会碰到涉及特殊字段的校验问题,比如身份证号码、统一社会信用代码、不动产产权证号等。这些字段都遵循着严格的国家标准(以下简称为国标),因此,仅仅依赖简单的位数校验是远远不够的,我们必须按照国标的要求对输入的字符串进行详…

深入理解Python多进程:从基础到实战

title: 深入理解Python多进程:从基础到实战 date: 2024/4/29 20:49:41 updated: 2024/4/29 20:49:41 categories:后端开发tags:并发编程 多进程管理 错误处理 资源调度 性能优化 异步编程 Python并发库引言 在Python编程中,多进程是一种重要的并发编程方式,可以让我们充分利…

IntelliJ IDEA - Lombok supports: OpenJDK javac, ECJ

问题描述 java: You arent using a compiler supported by lombok, so lombok will not work and has been disabled.Your processor is: com.sun.proxy.$Proxy26Lombok supports: OpenJDK javac, ECJ 解决方案 在 IDEA 设置中 File -> Settings 中找到配置如下&#xff1…

如何将本地项目上传到Github(SSH方式)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

Word插件开发

VSTO是Visual Studio Tools for Office的简称&#xff0c;它是Microsoft Visual Studio的一个扩展&#xff0c;用于开发基于Microsoft Office平台的应用程序。VSTO提供了一套API和工具&#xff0c;使开发人员能够利用Visual Studio IDE来开发定制的Office解决方案。 在 Visual…

prime1

prime1 主机发现发现服务、得到80 http、22 ssh有登录框就SQL注入、密码爆破 无登录框就目录扫描目录扫描:drib dirsearch 御剑 dirbuster(kali终端输入,启动图形化界面) burpsuite普通扫描 dirb http://192.168.218.146/得到 http://192.168.218.146/dev http://192.168.218…

时间序列+即插即用注意力模块!只需几行代码,预测误差狂降35.99%

即插即用的注意力模块可以显著提高时间序列预测模型的性能和准确性&#xff0c;同时保持模型的简洁和高效。 与传统的时序模型相比&#xff0c;注意力模块通过自适应处理输入数据的特征&#xff0c;以增强特征提取和空间/时间感知的能力。同时它可以很容易地集成到现有的深度学…

Vue从0-1学会如何自定义封装v-指令

文章目录 介绍使用1. 理解指令2. 创建自定义指令3. 注册指令4. 使用自定义指令5. 自定义指令的钩子函数6. 传递参数和修饰符7. 总结 介绍 自定义封装 v-指令是 Vue.js 中非常强大的功能之一&#xff0c;它可以让我们扩展 Vue.js 的模板语法&#xff0c;为 HTML 元素添加自定义行…

HTML随机点名程序

案例要求 1.点击点名按钮&#xff0c;名字界面随机显示&#xff0c;按钮文字由点名变为停止 2.再次点击点名按钮&#xff0c;显示当前被点名学生姓名&#xff0c;按钮文字由停止变为点名 案例源码 <!DOCTYPE html> <html lang"en"> <head> <m…

2024.4.29

2024.4.29 【锦水汤汤,与君长诀!】 Monday 三月二十一数论专题 同余 oi.wiki! 除法定理 对于任何整数a,和正整数m,存在唯一整数q,r,使得满足\(0\le r < m,a = qm+r\) 其中$$q = \lfloor \frac{a}{m}\rfloor$$ 为商,\(r = a \ mod \ m\)为余数 余数 将a mod m记作余数 …

C#上位机与S7-200Smart通信注意事项

S7-200SMART连接 问题描述 我们使用C#开发上位机和S7-200Smart系列PLC交互数据时&#xff0c;大多会用到Sharp7、Snap7之类的通信类库。有些通信类库默认的使用的是PG连接资源&#xff0c;而对于S7-200Smart来说&#xff0c;它的PG连接资源只有1个。 官网200smart提到的连接数…

【Android】 网络技术

前言 本文用于记录Android网络技术的使用&#xff0c; 包括我们如何发起一条HTTP请求、解析XML、JOSN格式的数据以及最好用的网络库Retrofit。 使用HTTP协议访问网络 关于HTTP协议的工作原理&#xff0c;我们只需要知道客户端向服务器发起一条HTTP请求&#xff0c;服务器接收…

3分钟了解拍摄VR全景需要哪些硬件

VR全景图片是一张水平方向360度&#xff0c;垂直方向180度&#xff0c; 图片尺寸宽高比为2:1的图片。 通过720yun APP或720yun官网上传生成全景H5页面&#xff0c;即可360度全方位观看画面中的景象。 拍摄VR全景有很多方法&#xff0c;下面介绍用单反相机、全景相机、智能手机…

阿里DMR论文阅读

论文链接:Deep Match to Rank Model for Personalized Click-Through Rate Prediction 代码链接背景 目前推荐系统大多集中在研究怎么建模用户的个性化推荐,对user和item相关性的研究比较少,这篇论文结合match和rank阶段的特征提出了DMR网络,该网络主要包含Item-to-Item和U…

保姆级指南,从0到1打造你的个人开源项目

本文主要是想给希望开始写开源项目的同学们一些开源项目维护的实操建议,也算是给自己梳理一下做一个开源项目需要注意的事项。前言 各位好久不见,有些小伙伴可能知道大概1年多以前我开始维护log-record项目(Java业务操作日志记录框架)。这期间项目陆陆续续更新迭代、发布新…

Mysql启动报错:Job for mysqld.service failed because the control process exited with error code.

该方法会删除 mysql 数据,慎用centos7上使用yum安装mysql后,启动报错 [root@localhost ~]# systemctl start mysqldJob for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journal…

第九周学习笔记DAY.1-反射

在计算机学科中&#xff0c;反射是指计算机程序在运行时可以访问、检测和修改它本身状态或行为的一种能力。通过Java的反射机制&#xff0c;程序员可以更深入地控制程序的运行过程&#xff0c;如在程序运行时对用户输入的信息进行验证&#xff0c;还可以逆向控制程序的执行过程…

微软的access数据库使用

“小规模数据用Excel&#xff0c;大规模数据用Access。” 当涉及到大规模数据时&#xff0c;使用excel非常的卡顿&#xff0c;使用access就不会出现这个问题。 一、常用操作 1.新建一个数据库 直接右键&#xff0c;新建 access数据库 2.excel内容导入到access中&#xff08;成…

css中内容content部分垂直居中的方法

1、vertical-align属性让文字居中vertical-align值有很多,常用的就是middle,bottom,text-bottom等,然而真实使用的时候,我们会发现这个属性“时灵时不灵”,有些情况下我们加了这个属性之后仍然不见img或者text有任何的变化。那是因为vertical-align只作用在inline-block或…

医生个人品牌网红IP孵化打造赋能运营方案

【干货资料持续更新&#xff0c;以防走丢】 医生个人品牌网红IP孵化打造赋能运营方案 部分资料预览 资料部分是网络整理&#xff0c;仅供学习参考。 PPT可编辑&#xff08;完整资料包含以下内容&#xff09; 目录 个人IP运营方案 1. 目标设定 - 个人定位&#xff1a;根据医生…