Ubuntu 守護進程


項目中用的Qt開發的GUI程序,需要隨機自啟動。

最初嘗試過使用SuperVisor,但是會出現下面的錯誤。

qt.qpa.screen: QXcbConnection: Could not connect to display

Could not connect to any X display.

 然后自己寫了一個控制台的程序監視進程,使用SuperVisor進行管理,但是只能把控制台程序啟動,控制台程序仍然無法啟動GUI程序,原因未知。

 

最后的解決方案是使用startx命令,

在SuperVisor的command命令后面加上startx,如下:

command =startx /home/dq/QtProj/QMoveTest/Debug/QMoveTest

使用該命令的弊端是默認將GUI程序的界面侵占Ubuntu的桌面,可以通過Ctrl+Alt+F7切換回Ubuntu的桌面。

因為項目的目的就是GUI程序占滿界面,該方法剛好滿足要求,對於那些需要進入到Ubuntu桌面再顯示GUI程序的需求不滿足。

 

控制台守護進程代碼:

鏈接: https://pan.baidu.com/s/1PytoXC9XP4ll11Z17oSHKg 密碼: uxzi

 

補充一個坑:

部署之后程序連不到數據庫,開始以為數據庫所在的用戶是root用戶無法訪問導致的。

實際上是當前路徑的問題。

比如:

 

以此種方式啟動程序,在程序獲取到的當前路徑是 /home/dq,並非/home/dq/QtProj/J1900Proj/J1900EntranceSystem-TH/Release

使用startx 也同樣,這就導致程序在錯誤的路徑下讀取配置。

程序中修改獲取路徑的方式即可,不要取當前路徑,在Linux獲取當前路徑應該都是對應到了PWD

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM