Ошибка: «SystemException: ошибка XOpenDisplay» при попытке запустить приложение Avalonia из Crontab в Linux - PullRequest
0 голосов
/ 11 марта 2020

У меня есть приложение Avalonia на плате Linux Debian UP, которую я могу запустить, используя следующую команду из терминала:

sudo dotnet /home/user/myapp/myapp.dll

Я написал следующее "keepalive. sh "скрипт, чтобы проверить, запущено ли приложение и запустить ли приложение, если это не так:

#!/bin/bash
if ! ps aux | pgrep -fx -l "dotnet /home/user/myapp/myapp.dll" > /dev/null
then
   sudo dotnet /home/user/myapp/myapp.dll
fi

Когда я запускаю это из терминала, приложение открывается нормально.

Затем я отредактировал файл crontab, добавив следующую строку:

*/1 * * * * sudo bash /home/user/keepalive.sh >> /tmp/keepalive.log 2>&1

Вывод в файле журнала:

Unhandled Exception: System.Exception: XOpenDisplay failed
   at Avalonia.X11.AvaloniaX11Platform.Initialize(X11PlatformOptions options)
   at Avalonia.Controls.AppBuilderBase`1.Setup()
   at Avalonia.Controls.AppBuilderBase`1.Start[TMainWindow](Func`1 dataContextProvider)
   at MyApp.Program.Main(String[] args) in C:\src\VSO\MyApp\src\MyApp\Program.cs:line 24
/home/user/keepalive.sh: line 4: 19313 Aborted                 sudo dotnet /home/user/myapp.dll

Я попытался явно настроить отображение в crontab и keepalive. sh, добавив следующее:

XAUTHORITY=/home/user/.Xauthority -or-
XAUTHORITY=${HOME}/.Xauthority -or-
XAUTHORITY=~/.Xauthority

Я также могу открыть Firefox из crontab, так что уверен, что это не проблема X сессии или DISPLAY.

Другие вещи, которые я пробовал:

  • Установка переменной PATH в crontab

  • Использование абсолютных путей для всего

  • Убедитесь, что root имеет разрешения для поддержки активности. sh

  • Используется sudo openvt <followed by my script>

  • Обновлен пакет nuget Avalonia до 0.9.3 (в настоящее время на 0.8.0)

  • Обновлен файл / etc / sudoers для обеспечения полного доступа к командам root и sudo

Я не уверен, что мне нужно сделать, чтобы заставить это работать, и я не уверен, что это проблема Linux или Avalonia. Оцените любые дальнейшие предложения.

...