Какой предпочтительный способ развертывания приложений Scala на удаленном сервере Linux.
Это довольно простой, но ограниченный способ развертывания приложения Scala на удаленном сервере (хорошо для быстрого тестирования не очень чувствительных проектов):
- На удаленном сервере я вытаскиваю свой источник из git
- Использование sbt-assembly подключаемый модуль Я создаю банку на сервере
-
Затем я запускаю приложение Scala, используя nohup, что позволяет выйти из удаленного сеанса без завершения процесса:
nohup java -jar myapp.jar > myapp.log 2 > myapp.err </dev/null &
Во-первых, как лучше всего остановить процесс после его запуска, учитывая его использование таких ресурсов, как базы данных и т.д. Я просто просматриваю идентификатор процесса java и nuke?
Во-вторых, что лучше всего запустить приложение Java автоматически при перезагрузке. Я вспоминаю использование init.d в прошлом, но помню, как можно было подняться в гору, поскольку это было Java-приложение.
Update:
Я пропустил слона в комнате здесь. Я использую библиотеку Spray, которая по очереди использует Akka, поэтому предоставляет ряд интересных вариантов.