硬件: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的使用方法这里就不赘述了,网上可以搜到很多,是一个进程管理工具