Как запустить приложение GUI с выскочкой?

Я боролся с этой проблемой в течение трех дней, и я пробовал много способов ее решения, но пока не удалось. Надеюсь, вы, ребята, можете мне помочь …

У меня есть приложение для графического интерфейса. Я хочу запустить это приложение автоматически. И когда он неожиданно закрывается или закрывается, я хочу снова открыть это приложение.

Я попытался использовать скрипт upstart, однако, несмотря на отсутствие проблем с услугами с выскочкой, приложение GUI не начинается с скрипта выскочки. Он говорит, что не может подключить X-сервер.

Должен ли я добавлять или изменять некоторые настройки для открытия с помощью выскочки или есть ли способ открыть приложение GUI автоматически, когда происходит неожиданный выход или завершение работы (не только после входа в систему, я имею в виду не с запуском)?

Проблема, с которой вы сталкиваетесь, заключается в том, что при запуске upstart (или systemd или сценариев в /etc/rc.d/ ) обычно нет графического сервиса («X-сервера»).

Более того, наличие графической подсистемы в Unix строго связано с понятием, что пользователь сделал графический вход, и только этот пользователь имеет право использовать графическую среду. Обычно НЕ запускать графическую подтип для root – и скрипты выскочки запускаются с помощью root.

Чтобы автоматически запускать графическое приложение в начале системы, мой подход:

  1. создайте пользователя для этой цели. Установите его так, чтобы его сеанс автозапускался.
    введите описание изображения здесь

  2. настроить приложение для запуска этого пользователя с помощью программы, которую вы хотите; выберите «приложение запуска» в тире: введите описание изображения здесь

  3. для перезапуска приложения, когда он выходит из строя, вы можете просто вставить его в скрипт:

      #!/bin/bash # while true; do /full/path/to/start_myapp.sh # NO background (&)! # if we land here it exited sleep 5 done 

Если вы используете этот скрипт, очень важно, чтобы команда start_myapp.sh не запускала приложение в фоновом режиме. В противном случае для автоматического перезапуска требуются более сложные стратегии …

Обратите внимание, что вы также можете использовать своего обычного пользователя параллельно; просто выберите «переключить пользователя» с панели (приспосабливайтесь к вашему вкусу Ubuntu), и у вас будет другой графический экран входа в систему; вы можете переключаться назад с помощью CTRL-ALT-F7 и CTRL-ALT-F8 …

Создать файл $HOME/.config/upstart/myGuiStart.conf

Содержание:

 start on desktop-start stop on desktop-end respawn exec firefox 

или другой пример с задержкой:

 start on desktop-start stop on desktop-end respawn script sleep 30 firefox end script 

описание респауна:

  respawn A service or task with this stanza will be automatically started if it should stop abnormally. All reasons for a service stopping, except the stop(8) command itself, are considered abnormal. Tasks may exit with a zero exit status to prevent being respawned. 

Больше информации:

http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html

http://upstart.ubuntu.com/

Исправить ошибку? -> https://askubuntu.com/a/62461/265974