Запуск SBT как Daemon
У меня есть приложение SBT scala, которое отлично работает с помощью "sbt run". Однако это блокирует консоль, и я предпочел бы запустить ее как службу/демон, чтобы я мог использовать консоль, а также чтобы я мог добавить ее в init.d, чтобы убедиться, что мое приложение запускается автоматически при запуске.
Я не могу найти способ сделать это. Запуск "sbt run &" кажется, повесил приложение в фоновом режиме.
Кто-нибудь знает, как это сделать?
Ответы
Ответ 1
Мы запускаем тестовые/демонстрационные приложения с SBT в init.d все время:
#!/bin/sh
# test lift web app
case "$1" in
'start')
cd /home/demouser/wa/HTML5DemoLift231/HTML5demo/
sbt jetty run
;;
'stop')
cd /home/demouser/wa/HTML5DemoLift231/HTML5demo/
sbt jetty stop
;;
*)
echo "Usage: $0 { start | stop }"
;;
esac
exit 0
Это просто работает - у нас с ним никаких проблем. Возможно, это отличается от не-веб-приложения.
Ответ 2
Вы также можете добавить свое приложение в "толстую" банку, используя sbt-assembly или sbt-onejar.
Это сделает его исполняемым банком и легко выполнится через java -jar jarname.jar
.
Ответ 3
Вы можете использовать экран GNU для сохранения его в фоновом режиме. Во всяком случае, я не могу придумать повод для этого. Не лучше ли упаковать приложение и запустить сгенерированные двоичные файлы в фоновом режиме?
Ответ 4
Просто введите sbt runProd
Затем нажмите Ctrl + D
Процесс будет выполняться как процесс демона.