在银河麒麟上直接运行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