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