linux qt daemon,使用systemd自动启动的Qt GUI实例不会响应输入

我有一个使用systemd启动进程的嵌入式Linux主板。我还有一个用Qt编写的GUI,我可以从命令行启动,并使用主板的触摸屏或按钮进行交互。要启动应用程序,我通常做:使用systemd自动启动的Qt GUI实例不会响应输入

我想这使用SystemD自动启动,所以我写的,看起来像这样一个服务文件:

[Unit]

Description=The Qt Gui

After=dropbear.service systemd-logind.service

ConditionFileIsExecutable=/home/user/gui

[Service]

ExecStart=/home/user/gui

Restart=on-abort

[Install]

WantedBy=multi-user.target

当董事会靴子我见该systemd日志,它是dropbear SSH服务后马上开始我的GUI:

[ OK ] Started Dropbear SSH2 daemon.

Starting The Qt Gui...

[ OK ] Started The Qt Gui.

如果我引导并运行“PS”后SSH连接到电路板,我可以看到我的进程启动(如果我杀了它它按照预期重新开始特德从systemd):

196 root 26868 S /home/user/gui

的systemctl状态输出看起来OK我,看到最后一行 'ARM生成' 是我的代码qDebug()print语句:

gui.service - The Qt Gui

Loaded: loaded (/etc/systemd/system/gui.service; enabled)

Active: active (running) since Tue, 2012-11-20 21:30:20 UTC; 4min 35s ago

Main PID: 196 (gui)

CGroup: name=systemd:/system/gui.service

└ 196 /home/user/gui

Nov 20 21:30:20 systemd[1]: Starting The Qt Gui...

Nov 20 21:30:20 systemd[1]: Started The Qt Gui.

Nov 20 21:30:22 gui[196]: ARM build

不过我根本无法与使用systemd启动的GUI实例进行交互!如果我从命令行启动辅助实例的次数少于按下按钮或触摸屏,并且GUI在屏幕上弹出并按预期工作。是什么赋予了?我已经在服务文件中尝试了'Type = forking',这也没有帮助。关于这里有什么问题的任何想法?我怎样才能让systemd启动我的Qt GUI,就像我从命令行执行一样?谢谢 -

2012-11-20

PhilBot

+0

也许这可能涉及到不同的工作目录。您应该检查是否使用与systemd相同的工作目录,您的应用程序仍然具有良好的行为,可以通过命令行启动。 –

+0

问题可能是因为您在登录时启动它,但尚未正确设置所有内容。我曾经遇到过一个问题,Qt在登录时自动启动时没有在KDE中创建一个托盘图标,因为它在系统托盘可用之前启动。你能安排程序在登录后10-20秒开始吗? –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值