Я боролся с этой проблемой в течение трех дней, и я пробовал много способов ее решения, но пока не увенчался успехом. Я надеюсь, что вы, ребята, можете мне помочь ...
У меня есть приложение с графическим интерфейсом. Я хочу запустить это приложение автоматически. И когда он неожиданно закрывается или закрывается, я хочу снова открыть это приложение.
Я попытался использовать скрипт upstart, однако, несмотря на то, что нет проблем с сервисами с upstart, приложение GUI не запускается со скриптом upstart. Он говорит, что не может подключиться к X-серверу.
Должен ли я добавить или изменить некоторые настройки, чтобы открыть их с помощью upstart, или есть ли способ автоматически открыть приложение с графическим интерфейсом при неожиданном выходе или завершении работы (не раз после входа в систему, я имею в виду не при запуске)?
Проблема, с которой Вы сталкиваетесь, состоит в том, что, когда upstart
(или systemd
, или сценарии в /etc/rc.d/
) выполняются, обычно нет никакого графического обслуживания ("X-сервер") выполнения.
, Кроме того, доступность графической подсистемы в Unix является строго связью к понятию, что пользователь сделал графический вход в систему, и просто этот пользователь имеет право использовать графическую среду. Это обычно для НЕ запуска графической подсистемы для корня---, и новомодные сценарии выполняются корнем.
Для автоматического запущения графического приложения в начале системы мой подход был бы:
создают пользователя с этой целью. Настройте его так, чтобы его сессия автоматически запустила.
настраивает приложение запуска для этого пользователя с программой, которую Вы хотите; выберите "startup application" в тире:
для перезапуска приложения, когда это выходит/разрушает, можно просто встроить его в сценарий:
#!/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...
Создайте Содержание файла $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
ошибка Переикры?-> https://askubuntu.com/a/62461/265974