Запуск сценария, который требует команду DISPLAY =: 1, в качестве службы

244
user925635

Я использую Ubuntu 16.04 с сервером Xfce desktop + VNC для доступа к нему.

У меня есть скрипт, который запускает приложение GUI и управляет им. Я могу запустить его из оболочки, DISPLAY=:1 /home/script.shи он прекрасно выполняет мое приложение в графическом интерфейсе.

Тем не менее, мне нужно, чтобы он работал как служба, так что каждый раз, когда я закрываю его или приложение закрывает себя, script.shперезапускается.

Я пытался создать службы под /lib/systemd/system/или, /etc/systemd/system/но он никогда не запускается. Я подозреваю, что это потому, что мне нужно пройти, DISPLAY=:1чтобы сначала сделать это в сеансе GUI моего VNC-сервера.

Когда я пытаюсь запустить службу, я получаю следующее:

[/etc/systemd/system/abc.service:5] Executable path is not absolute, ignoring: "DISPLAY=:1 /home/script.sh

Как правильно настроить его как сервис?

0
Попробуйте это: [* Как использовать переменные в служебном файле systemd? *] (Https://serverfault.com/a/868388) Kamil Maciorowski 5 лет назад 1
Не похоже на работу Environment = DISPLAY =: 1 user925635 5 лет назад 0

1 ответ на вопрос

1
Ignacio Vazquez-Abrams

Переменные среды устанавливаются с использованием одной или нескольких *Environment*директив в служебном файле. Смотрите systemd.exec(5)man-страницу для деталей.

Эти звездочки сбивают с толку. Форматирование неудача может быть? Kamil Maciorowski 5 лет назад 0
@KamilMaciorowski: Нет. Несколько директив, которые содержат «Среду». Ignacio Vazquez-Abrams 5 лет назад 0

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