• 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

  • 相关阅读:
    Event bubbling
    input/change event practice
    Form event
    Event_Object
    DOM_this keyword
    Random color generator exercise
    DOM_events_addEventListener
    Spring值SpEL
    Spring之使用外部属性文件
    Spring之Bean的作用域
  • 原文地址:https://www.cnblogs.com/zhehan54/p/9547116.html
Copyright © 2020-2023  润新知