麒麟操作系统设置QT程序开机自启动有效方法
在麒麟操作系统上设置QT程序开机自启动的两种简单有效的方法。支持请点赞!
一、QT程序打包
1.设置环境变量
设置QT和linuxdeployqt的环境变量,已设置可忽略该步骤。
在/etc/profile文件末尾添加一下内容:
export PATH=/usr/local/Qt-5.15.2/bin:/home/MyWork/build-linuxdeployqt-unknown-Release/bin:/usr/local/Qt-5.15.2/lib:/usr/local/Qt-5.15.2/plugins:/usr/local/Qt-5.15.2/plugins/platforms/:$PATHexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Qt-5.15.2/libexport PLUGIN_PATH=/usr/local/Qt-5.15.2/plugins:$PLUGIN_PATHexport QML2_PATH=/usr/local/Qt-5.15.2/qml:$QML2_PATHexport QT_QPA_PLATFORM_PLUGIN_PATH=/usr/local/Qt-5.15.2/plugins/platforms/export QT_DEBUG_PLUGINS=1
2.程序打包
使用linuxdeployqt工具进行打包。
自行下载linuxdeployqt-master编译安装或下载已编译好的执行体。
linuxdeployqt App.exe -appimage
二、创建程序启动脚本
1.在程序执行文件目录下创建startup.sh文件
2.编辑startup.sh文件
输入以下内容(“//”后为本文添加的注释说明,后同):
#!/bin/bash#export QT_QPA_PLATFORM=’offscreen’ //当为无界面程序时须将注释放开source /etc/profile //使环境变量生效cd /*/* //设置为AppRun所在目录路径./AppRun //该文件为linuxdeployqt工具生成文件
三、开机自启动设置
开机自启动针对有无图形界面程序将采用不同的设置方式。
1.针对有图形界面程序
(1).进入系统目录
cd /etc/xdg/autostart/
(2).在/etc/xdg/autostart/目录下新建AppRun.desktop文件(文件名可自定义)
sudo touch AppRun.desktop
(3).赋予AppRun.desktop权限
sudo chmod 777 AppRun.desktop
(4).编辑AppRun.desktop文件内容
输入以下内容:
[Desktop Entry]Type=ApplicationName=AppRun //名称可自定义Exec=/*/startup.sh //设置为startup.sh所在目录路径
(5).reboot重启测试。
2.针对无图像界面程序
重点注意:设置无图形界面程序服务时需将脚本中的export QT_QPA_PLATFORM=’offscreen’放开,否则会报引用QT库错误,暂时找不到解决方案。
(1).进入系统目录
cd /etc/systemd/system
(2).在/etc/systemd/system/目录下新建AppRun.service文件(文件名可自定义)
sudo touch AppRun.servicesudo chmod 777 AppRun.service
(3).编辑AppRun.service文件内容,执行脚本路径根据实际情况修改。
[Unit]Description=AppRunAfter=AppRun.service[Service]User=rootGroup=rootWorkingDirectory=/home//MyWork/bin/unix/Debug/Type=forkingExecStart=/home/MyWork/bin/unix/Debug/startup.shExecReload=/home/MyWork/bin/unix/Debug/startup.sh -s reloadExecStop=/home/MyWork/bin/unix/Debug/startup.sh -s stopExecenable=/home/MyWork/bin/unix/Debug/startup.shRestart=on-abnormal[Install]WantedBy=multi-user.target
(4).依次执行以下命令设置服务属性。
systemctl enable AppRun.service //设置AppRun.service 为服务启动项systemctl start AppRun.service //启动服务systemctl status AppRun.service //查看服务状态
(5).reboot重启测试。
四、使用命令查看进程状态。
ps -ef|grep AppRun
相关文章:
麒麟操作系统设置QT程序开机自启动有效方法
在麒麟操作系统上设置QT程序开机自启动的两种简单有效的方法。支持请点赞! 一、QT程序打包 1.设置环境变量 设置QT和linuxdeployqt的环境变量,已设置可忽略该步骤。 在/etc/profile文件末尾添加一下内容: export PATH/usr/local/Qt-5.15.…...
Python数组删除元素pop与remove对比
pop()和remove()函数都可以用来删除列表中的函数,pop()是按索引来删除的,remove()是按元素来删除的。 1、pop()默认删除列表中最后一个元素,而且会返回删除的元素。此时的时间复杂度为O(1) 下面的例子中,…...
【Java 进阶篇】Java Web 编写注册页面案例
当涉及到创建一个Java Web注册页面时,你将需要涵盖很多不同的主题,包括HTML、CSS、Java Servlet和数据库连接。在这篇文章中,我们将详细介绍每个步骤,以帮助你创建一个完整的注册页面。 1. 介绍 注册页面是许多Web应用程序的关键…...
7.5 SpringBoot 拦截器Interceptor实战 统一角色权限校验
前言 在【7.1】管理员图书录入和修改API,当时预告过:并没有写【校验是否是管理员】的逻辑,因为是通用逻辑,会单写一篇来细讲,那么今天就来安排! 角色权限校验,是保证接口安全必备的能力:有权限才可以操作!所以,一般对于这种通用逻辑,推荐不与主业务逻辑耦合,那么…...
【原创】ubuntu18修改IP地址
打开网络配置文件 sudo vi /etc/network/interfaces结果发现如下内容: # ifupdown has been replaced by netplan(5) on this system. See # /etc/netplan for current configuration. # To re-enable ifupdown on this system, you can run: # sudo apt inst…...
Vue-2.4sync修饰符
作用:可以实现子组件与父组件数据的双向绑定,简化代码 特点:prop属性名,可以自定义,非固定为value 场景:封装弹框类的基础组件,visible属性 true显示 false隐藏 本质:就是:属性名…...
【RealTek sdk-3.4.14b】RTL8197FH-VG+RTL8367+RTL8812F WiFi to LAN 和WiFi to WAN吞吐量
LAN <----------> 2.4G WiFi Throughput 天线频宽模式协议连接速率TX(Mbps)RX(Mbps)TX&RX(Mbps)2X240MHz802.11nTCP300Mbps2051922112X240MHz802.11nUDP300Mbps224234231 LAN <----------> 5G WiFi Throughput 天线频宽模式协议连接速率TX(Mbps)RX(Mbps)TX&…...
vue 本地上传Excel文件并读取内容
陌路遇见,陌路告别,陌路问好,九月再见,十月重现! 首先我来讲解一下我的思路: 首先,在模板部分,我们有以下元素: <input type“file” change“handleFileUpload” accept“.xlsx…...
京东商品品牌数据采集接口,京东商品详情数据接口,京东API接口
采集京东商品品牌数据的方法如下: 打开网页。在首页【输入框】中输入目标网址批量输入多个关键词并搜索。创建【循环列表】,采集所有商品列表中的数据。编辑字段。创建【循环翻页】,采集多页数据。设置滚动和修改【循环翻页】XPath。启动采集…...
电脑提示Explorer.exe系统错误该怎么办?
平时我们在使用电脑时,系统有时会提示Explorer.exe系统错误,很多用户在遇到这类问题时不知道该怎么办。遇到Explorer.exe系统错误,该怎么办呢?下面我们一起来了解一下。 怎么修复Explorer.exe系统错误? Explorer.exe是…...
Java架构师部署架构设计
目录 1 导学2 部署架构设计和部署架构图2.1 服务器数量和配置2.2 服务器软件配置2.3 网络环境设计2.4 部署架构图2.5 部署说明文档2.6 部署清单2.7 画部署架构图3 实战整体部署架构设计4 节点部署说明列表5 总结1 导学 本章的主要内容是整体架构设计的核心之一,部署架构设计相…...
ubuntu 22.04.3 live server图文安装流程
备注:以下操作全用键盘,tab切换,enter确认,方向键移动; 1、 选择安装,第一个; 2、选择语言,这里只能选择英语,无中文; 3、继续而不更新 4、键盘,…...
基于SVM+TensorFlow+Django的酒店评论打分智能推荐系统——机器学习算法应用(含python工程源码)+数据集+模型(一)
目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境方法一方法二 安装其他模块安装MySQL 数据库 模块实现1. 数据预处理1)数据整合2)文本清洗3)文本分词 相关其它博客工程源代码下载其它资料下载 前言 本项目以支…...
Elasticsearch 分片内部原理—近实时搜索、持久化变更
目录 一、近实时搜索 refresh API 二、持久化变更 flush API 一、近实时搜索 随着按段(per-segment)搜索的发展,一个新的文档从索引到可被搜索的延迟显著降低了。新文档在几分钟之内即可被检索,但这样还是不够快。 磁盘在这…...
华为OD机试 - 用连续自然数之和来表达整数 - 滑动窗口(Java 2023 B卷 100分)
目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷)》…...
玩转ChatGPT:图像识别(vol. 1)
一、写在前面 来了来了,终于给我的账号开放图像识别功能了,话不多说,直接开测!!! 二、开始尝鲜 (1)咒语: GPT回复: 这幅图显示了从2005年1月到2012年12月的…...
oracle 数据库实验三
(1)向 ORCL数据库添加一个重做日志文件组(组号为5),包含一个成员文件d:\redo05a.log,大小为4MB ; 要向Oracle数据库添加一个重做日志文件组,您可以执行以下步骤: 连接到数据库&…...
多线程并发篇---第五篇
系列文章目录 文章目录 系列文章目录一、什么是线程安全二、Thread类中的yield方法有什么作用?三、Java线程池中submit() 和 execute()方法有什么区别?一、什么是线程安全 线程安全就是说多线程访问同一段代码,不会产生不确定的结果。 又是一个理论的问题,各式各样的答案有…...
java实现权重随机获取值或对象
文章目录 场景TreeMap.tailMap方法简单分析使用随机值使用treemap实现权重取值将Int改为Double稍微准确一点,因为double随机的值更加多测试main方法 当权重的参数比较多,那么建议使用hutool封装的 场景 按照权重2,8给用户分组为A,B, TreeMap.tailMap方法 treeMap是一种基于红…...
期权账户怎么开通的?佣金最低多少?
场内期权的合约由交易所统一标准化定制,大家面对的同一个合约对应的价格都是一致的,比较公开透明。期权开户当天不能交易的,期权开户需要满足20日日均50万及半年交易经验即可操作。 个人投资者想要交易期权首先就得先开户,根据规…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
