首页 > 编程语言 >systemd服务(二):Qt程序做自启动时,不能正常运行

systemd服务(二):Qt程序做自启动时,不能正常运行

时间:2024-12-28 11:31:00浏览次数:5  
标签:opt systemd Qt testhuqt 程序 自启动 qt

*: systemd服务中文手册:https://www.jinbuguo.com/systemd/systemd.exec.html

 

背景:

不管是,直接运行qt程序,还是使用sh脚本来运行qt程序,都是正常的

但是加入到 systemd 自启动服务后,总是启动不了Qt程序,通过 sudo ststemctl status testhuqt 和  journalctl -u testhuqt 查询日志和报错,分析是环境的原因

 

原因:

systemd服务自有一套环境,和用户环境不一样,所以导致qt运行不起来,需要设置systemd的环境

 

解决方法:

1. 在安装deb包的时候,在 postinst 文件,写入当前的系统环境

2. 在卸载deb包的时候,在 prerm 文件,删除文件

 

 

 

3. 编写  service 文件,使用设置的环境 EnvironmentFile

# systemd服务中文手册:https://www.jinbuguo.com/systemd/systemd.exec.html
[Unit]
Description=testhuqt                         

[Service]
Type=simple 
EnvironmentFile=/opt/testhuqt/test1.env        
# 设置工作目录      
#WorkingDirectory=/opt/testhuqt
ExecStart=/opt/testhuqt/start.sh
ExecStop=/usr/bin/killall testhuqt
Restart=always
RestartSec=5

[Install]
#multi-user.target:表示多任务终端窗口;graphical.target:表示图形化界面
WantedBy=graphical.target

 

然后 qt 程序就可以正常自启动了

 

标签:opt,systemd,Qt,testhuqt,程序,自启动,qt
From: https://www.cnblogs.com/shiyixirui/p/18637325

相关文章

  • systemd服务(一):Linux程序崩溃自启动方法
     linux进程挂掉后,可以通过配置systemd来自动启动服务1.创建systemd服务文件,例如:huyang.service,需要放置在系统文件夹/etc/systemd/system2.编辑文件,填写详细信息3.操作systemd服务[Unit]Description=huyangSCRSserver#对服务的描述After=netw......
  • 配置usb无线网卡为热点,并开机自启动
    一、插上无线网卡,然后安装驱动终端输入:lsusb,出现类似semiconductorcorp802.11nWLANAdapter的一行,可能没有最后的WLANAdapter,问大模型:semiconductorcorp802.11nWLANAdapter需要安装什么驱动安装即可。二、机器狗ubuntu20.04安装了usb无线网卡,怎么配置开机自启动的......
  • Ubuntu/Linux开机自启动脚本创建方法
    mc服务器自重启/自备份脚本创建文件首先,我们需要创建一个脚本新建一个auto.sh文件赋予他执行权限chmod+x/root/auto.sh内容如下#!/usr/bin/bashecho"Hello,World!"其中第一行是指定脚本使用BashShell解释器,可以使用下面的命令查看whichbash接下来尝试运行.......
  • Qt天气预报系统设计界面布局第一部分
    Qt天气预报系统1、界面布局第一部分1.1改变窗口背景色1.2添加第一部分1.3修改控件名称1、界面布局第一部分1.1改变窗口背景色先给窗口换个背景色,把鼠标放到界面上,单击鼠标右键,选择改变样式表点击添加颜色旁边的黑色倒三角,然后选择background-color改变背景色,也......
  • Qt 软件调试——windbg初篇(一)
    https://blog.csdn.net/weixin_39568531/article/details/134787829 在上一篇《Qt软件调试(二)使用dump捕获崩溃信息》中我们结尾处提示大家先准备好windbg,windbg是非常强大的调试工具,对于我们进行代码调试和分析异常有着非常重要的意义。在Qt软件调试这个系列的首篇,我们介绍了......
  • Qt 模型Model/视图View/代理Delegate
    一、模型/视图/代理架构简介1、应用程序中往往要存储大量的数据,并对它们进行处理,然后可以通过各种形式显示给用户,用户需要时还可以对数据进行编辑。2、Qt中的模型/视图架构就是用来实现大量数据的存储、处理及其显示的。3、MVC设计模式:(1)、模型(Model)是应用对象,用......
  • qt学习之增加checkBox
    在实际的开发过程中,有时会需要将单元格是控件居中的情况存在,发现加了布局之后,tablewidget的信号cellChanged无法响应,于是想了一个办法当checkBox的状态发生变化时,手动发送tablewidget改变的信号以下是两种在单元格中增加复选框的方法//第一种,setItem直接添加此处没有布局......
  • Qt使用spdlog乱码问题
    Qt使用spdlog输出日志Qt提供了qInstallMessageHandler函数,允许安装一个自定义的消息处理函数,以拦截和处理Qt的日志消息。可以利用这一功能,将日志写入文件。可以在main文件中定义如下函数:#include<spdlog/spdlog.h>#include<spdlog/sinks/rotating_file_sink.h>//<全......
  • 记录python+pyside+qml+qtcharts 使用,防踩坑
    使用QML-qtquick进行开发时,有个使用chart图表的需求,看了一大圈,网上都是qmake或是cmake来构建QTchart,用python开发也只搜到QtWidgets模块进行图表绘制。然而我对qtwidgets不是很了解,想要的是QML开发,在使用ChartView{}时一直闪退,没有效果。经历了苦苦搜寻,终于在https://stackove......
  • Jmeter自学【8】- 使用JMeter模拟设备通过MQTT发送数据
    今天使用jmeter推送数据到MQTT,给大家分享一下操作流程。一、安装JMeter参考文档:Jmeter自学【1】-Jmeter安装、配置二、安装MQTT插件1、下载插件我的Jmeter版本是5.6.3,用到的插件是:mqtt-xmeter-2.0.2-jar-with-dependencies.jar下载链接:https://pan.baidu.com/s/1mWgvSkX......