我正在尝试在 Linux 系统上使用 pkexec 以提升的权限运行 Avalonia 应用程序。我使用的命令是:
pkexec /home/depaula/MyApp/RedundancyServerIHM
但是,我遇到了以下错误:
Unhandled exception. System.Exception: XOpenDisplay failed
at Avalonia.X11.AvaloniaX11Platform.Initialize(X11PlatformOptions options)
at Avalonia.AvaloniaX11PlatformExtensions.<>c.<UseX11>b__0_0()
at Avalonia.AppBuilder.SetupUnsafe()
at Avalonia.AppBuilder.Setup()
at Avalonia.AppBuilder.SetupWithLifetime(IApplicationLifetime lifetime)
at Avalonia.ClassicDesktopStyleApplicationLifetimeExtensions.StartWithClassicDesktopLifetime(AppBuilder builder, String[] args)
at RedundancyIHM.Avalonia.Program.Main(String[] args) in C:\Users\otavio.paula\Documents\\RedundancyServerIHM.Avalonia\Program.cs:line 12
Aborted (core dumped)
背景: 该应用程序是使用 Avalonia 框架开发的,旨在提供图形用户界面。 当我尝试以普通用户身份运行该应用程序时,它工作正常。但是,使用 pkexec 运行它会导致 XOpenDisplay 错误,表明它无法连接到 X11 服务器。
是否有推荐的方法可以在 Linux 上以提升的权限运行图形应用程序而不会遇到此错误?
我使用
xhost +SI:localuser:root
授予 root 用户访问 X11 服务器的权限,但没有解决问题。
此方法导致相同的 XOpenDisplay 失败错误。
尝试使用
sudo -E applicationName
执行应用程序
此命令将保留与图形关联的当前环境变量,以便在 Linux 桌面上运行 Gui 应用程序