Как создать сервис на Ubuntu Upstart

У меня есть исполняемая программа на Java, которую я могу запустить, набрав java -jar abc.jar в терминале. Как я могу запустить его как сервис? Я хочу запустить его как службу, набрав service abc start.

21
задан 15 January 2018 в 16:34

2 ответа

Удостоверьтесь, что Вы находитесь на 14,04. Ubuntu 16.04 (и выше) использует systemd, не Выскочку.

Новомодный сценарий является файлом сценария, помещенным в /etc/init/ и окончание в .conf.

Требуется 2 раздела: один для указания, когда запустить, и другой с командой для выполнения.

Самый легкий сценарий для запуска с образца:

# myprogram.conf
start on filesystem
exec /usr/bin/java -jar /path_to/program

Созданный как корень под /etc/init/myprogram.conf.

Если Ваш сценарий требует больше чем одной командной строки, используйте script раздел вместо exec строка:

# myprogram.conf
start on filesystem
script
    /usr/bin/java -jar /path_to/program
    echo "Another command"
end script

Для включения завершения удара для сервиса добавьте символьную ссылку в /etc/init.d папка:

sudo ln -s /etc/init/myprogram.conf /etc/init.d/myprogram

Затем попробуйте, запускают и останавливают его:

sudo service myprogram start

Согласно новомодной поваренной книге, можно создать pre-start/post-start и pre-stop/post-stop команды, которые будут выполняться.

Кроме того, я читал, Вы хотите проверить, работает ли процесс. Проверьте этот вопрос и возможно используйте pre-start раздел.

41
ответ дан 15 January 2018 в 16:34

Вам нужно создать выскочку. http://upstart.ubuntu.com/getting-started.html

Upstart - это (IMHO) катастрофа по сравнению с хорошими сценариями инициализации SysV. Upstart НАМНОГО больше усилий с небольшим потенциалом для дополнительной работы. С учетом вышесказанного, я подозреваю, что там будет несколько выскочка защитников, которые возьмут меня на себя, чтобы сформулировать очевидное; -)

0
ответ дан 15 January 2018 в 16:34

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

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