Запуск SBT в качестве демона - PullRequest
12 голосов
/ 14 мая 2011

У меня есть приложение SBT scala, которое работает нормально, используя "sbt run".Однако это блокирует консоль, и я бы предпочел запустить ее как сервис / демон, чтобы я мог использовать консоль, а также чтобы я мог добавить ее в init.d, чтобы гарантировать, что мое приложение запускается автоматически при запуске.

Кажется, я не могу найти способ сделать это.Запуск «sbt run &», кажется, приводит к зависанию приложения в фоновом режиме.

Кто-нибудь знает, как это сделать?

Ответы [ 4 ]

9 голосов
/ 14 мая 2011

Вы также можете собрать приложение в «толстый» файл, используя sbt-assembly или sbt-onejar .

Это сделает его исполняемымбанка и легко запускается через java -jar jarname.jar.

8 голосов
/ 16 мая 2011

Мы постоянно запускаем тестовые / демонстрационные приложения с 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

Это просто работает - у нас не было проблем с этим. Это может отличаться от не-веб-приложения.

6 голосов
/ 14 мая 2011

Вы можете использовать Экран GNU для сохранения его в фоновом режиме.Во всяком случае, я не могу найти вескую причину для этого.Не лучше ли упаковать приложение и запустить сгенерированные двоичные файлы в фоновом режиме?

1 голос
/ 22 сентября 2017

Просто наберите sbt runProd А затем нажмите Ctrl + D Процесс будет работать как процесс демона.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...