systemd服务(二):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 程序就可以正常自启动了

 

posted @   十一的杂文录  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示