*: 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