我在usr/share/applications
中放置了一个桌面条目,该条目运行Java jar,如下所示:
[Desktop Entry]
Encoding=UTF-8
Exec=pkexec /usr/bin/java -jar something-something.jar
Icon=default.png
Type=Application
Terminal=false
Name=foo
GenericName=bar
StartupNotify=false
Categories=Game
我需要以root
来运行JAR,所以我尝试使用pkexec
来显示GUI密码提示,以便可以以sudo
来运行JAR(我正在使用Ubuntu 18 )。但是,它不起作用,当我尝试在终端中打开桌面条目时(使用类似xdg-open
的方法),我得到了:Refusing to render service to dead parents
我认为问题出在我使用pkexec
上。尽管我想知道为什么pkexec
不能用于我的用途,但我想知道如何从GUI中使用sudo
运行JAR?这样,当我从菜单上单击桌面条目时,会出现密码提示。
编辑:
实际上,我一直在使用gtk-open
并得到死父母的错误。 xdg-open
导致桌面条目仅在vim
中打开。
答案 0 :(得分:3)
pkexec
是PolicyKit的一部分,可以更好地分配权限。要使用pkexec通过图形用户界面执行程序,可以使用以下调用:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY /usr/bin/java -jar something-something.jar