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 程序就可以正常自启动了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具