Я пытаюсь разработать корректный сценарий запуска/завершения работы (Bash) для приложения Java (JAR), который я буду развертывать на своем сервере Ubuntu 14.04. Я ищу чистое, Linux - и благоприятный для Ubuntu способ запустить сервер как так:
java -jar myapp.jar <lots off subsequent arguments>
И затем, в сценарии завершения работы, находя PID JAR, выпуская SIGSTOP для разрешения приложения также делают корректное завершение работы самостоятельно и затем наконец уничтожение PID когда его польза и готовый.
Я задавался вопросом если upstart
может быть хороший кандидат на такой вариант использования, и если так, как? Иначе, каковы некоторые другие подходы, которые я смог проявлять?
SIGSTOP приостанавливает процесс и не делает чистого завершения работы. Используйте SIGTERM вместо этого.
Вот черновое новомодное задание для процесса Java:
description "my java app"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
exec java -jar myapp.jar <arguments>
, который должен работать довольно хорошо.