Назад | Перейти на главную страницу

Не удалось запустить службу из-за отсутствия переменной окружения

Я пытаюсь запустить Geoserver как службу systemd, используя этот скрипт:

(с использованием ubuntu 16.04)

[Unit]
Description=Geoserver
After=network.target

[Service]
Type=simple
ExecStart=/home/ermis/geoserver/bin/startup.sh
ExecStop=/home/ermis/geoserver/bin/shutdown.sh
User=ermis

[Install]
WantedBy=multi-user.target

И я получаю эту ошибку в системном журнале

systemd[1]: Starting Geoserver...    
startup.sh[21823]: The GEOSERVER_HOME environment variable is not defined
    systemd[1]: geoserver.service: Main process exited, code=exited, status=1/FAILURE
    startup.sh[21823]: This environment variable is needed to run this program
    startup.sh[21823]: Please set it to the directory where geoserver was installed
    VM2 systemd[1]: geoserver.service: Failed with result 'exit-code'.
    VM2 systemd[1]: Failed to start Geoserver.

Я попытался ввести GEOSERVER_HOME в / etc / environment, но все равно получаю ту же ошибку.

Что я делаю не так?

Вы можете добавить файл среды в определение вашего сервиса:

[Service]
EnvironmentFile=/etc/sysconfig/yourservice

Затем создайте этот файл (фактический путь зависит от вас), определите там свою переменную и перезагрузите определения службы:

sudo systemctl daemon-reload

Теперь ваша служба должна использовать переменные среды.