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 程序就可以正常自啟動了


浙公網安備 33010602011771號