Qt的.desktop文件运行后对文件没有写权限,解决QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-roo

34 篇文章 2 订阅

在银河麒麟上直接运行qt制成的.desktop程序,会有一个致命的问题,运行后可以显示界面,但是没有写文件的权限,无法写入数据库,只能读,网络拉流后线程保存MP4文件直接崩掉,所以要想办法使用root权限启动程序,但是使用桌面图标启动,不能用在命令行输入sudo,于是修改了.desktop文件:

Exec=sudo /usr/local/shixun/wapp.sh

wapp.sh
使用pkexec开启root权限运行软件,将下面行写入wapp.sh

pkexec  /usr/local/shixun/wapp
或
pkexec  /usr/local/shixun/wapp -qws

但是这些都会报错:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
qt.qpa.screen: QXcbConnection: Could not connect to display
Could not connect to any X display.

解决办法就是配置DISPLAY和XAUTHORITY

#!/bin/sh
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/local/shixun/wapp
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值