Как запустить приложение с графическим интерфейсом с upstart?

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

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

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

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

4
задан 6 August 2014 в 11:50

2 ответа

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

, Кроме того, доступность графической подсистемы в Unix является строго связью к понятию, что пользователь сделал графический вход в систему, и просто этот пользователь имеет право использовать графическую среду. Это обычно для НЕ запуска графической подсистемы для корня---, и новомодные сценарии выполняются корнем.

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

  1. создают пользователя с этой целью. Настройте его так, чтобы его сессия автоматически запустила.
    enter image description here

  2. настраивает приложение запуска для этого пользователя с программой, которую Вы хотите; выберите "startup application" в тире: enter image description here

  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 не запускала приложение в фоне. Иначе более сложные стратегии требуются, чтобы перезапускаться автоматически ...

Уведомление, что можно использовать обычного пользователя параллельно также; просто выберите, "switch user" от панели (адаптируйтесь к своей разновидности Ubuntu), и у Вас будет другой графический экран входа в систему; можно переключить назад дальше CTRL-ALT-F7 использования и CTRL-ALT-F8...

4
ответ дан 6 August 2014 в 11:50

Создайте Содержание файла $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.
[еще 1111] информация:

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

http://upstart.ubuntu.com/

ошибка Переикры?-> https://askubuntu.com/a/62461/265974

5
ответ дан 6 August 2014 в 11:50

Другие вопросы по тегам:

Похожие вопросы: