使用 pkexec 以提升的权限启动 Avalonia 应用程序时,XOpenDisplay 失败

问题描述 投票:0回答:1

我正在尝试在 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 失败错误。

c# linux root avaloniaui avalonia
1个回答
0
投票

尝试使用

sudo -E applicationName
执行应用程序 此命令将保留与图形关联的当前环境变量,以便在 Linux 桌面上运行 Gui 应用程序

© www.soinside.com 2019 - 2024. All rights reserved.