служба systemd не запускается

У меня включен следующий файл systemd: /etc/systemd/system/pirestservice.service

[Unit]
Description=Raspberry Pi REST Service
After=local-fs.target network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/piservice/startpiservice.sh
Restart=always

[Install]
WantedBy=multi-user.target

Сценарий оболочки, упомянутый выше, выглядит следующим образом и делается исполняемым.

#!/bin/bash
sudo java -jar /usr/local/piservice/pirestservice-0.0.1-SNAPSHOT.jar server rest_metadata/template.yml

Если я запускаю сценарий оболочки, эта служба dropwizard запускается. Если я перезагружаюсь или запускаю службу из командной строки, служба показывает, что работает, если я это делаю:

ps -ef | grep pirest

Я увижу номер PID, присвоенный процессу ... ОДНАКО .... служба на самом деле не работает. Что мне не хватает? Мне нужен только один файл .service или мне не хватает других конфигураций? Должен ли файл .service находиться в другом каталоге?

В конце концов, я просто хочу, чтобы мое приложение работало как демон / фоновая служба.

К вашему сведению, я запускаю это на Raspberry Pi3 с установленным Ubuntu Mate 16.

Спасибо,

Майк


person mike    schedule 19.11.2016    source источник
comment
Есть ли у вас что-то вроде «Нажмите любую клавишу для выхода», т.е. что ваша служба заблокирована из-за ожидания ввода пользователя?   -  person Nikola Stojiljkovic    schedule 13.12.2016


Ответы (1)


Java на пути? И может ли служебный скрипт правильно найти ваш конфигурационный файл Dropwizard?

Моя конфигурация выглядит так:

[Service]
ExecStart=/usr/bin/java -jar /opt/myservice/myservice.jar server /opt/myservice/application.yml

Обратите внимание, что я использую абсолютные пути для двоичного файла java и для файла конфигурации Dropwizard. Если вы не хотите жестко указывать путь к файлу конфигурации, попробуйте добавить его в служебный файл:

WorkingDirectory=/opt/myservice
person rdeboo    schedule 13.12.2016