Die Antwort von oleg-andriyanov hat in meinem Fall nicht funktioniert. (Prozess wurde kurz nach dem Start beendet)
Versuchen Sie in einem solchen Fall als Alternative den unten in Play ML geschriebenen Befehl von Mirko Stocker. https://groups.google.com/forum/#!topic/play-framework/ZgjrPgib0-8
# screen -d -m sbt run
Das sollte auch funktionieren
sbt -Djline.terminal=jline.UnsupportedTerminal run &
Quelle:https://github.com/sbt/sbt/issues/701
Sieht aus wie sbt angeforderte Eingabe von Ihrem Terminal. Wenn es nicht wirklich Eingaben benötigt (was wahrscheinlich der Fall ist, wenn Sie das Programm im Hintergrund ausführen), können Sie es wie folgt ausführen:
sbt run </dev/null >output-file &
Einzelheiten finden Sie in dieser Antwort.
BEARBEITEN
Ok, das war jetzt ein Rätsel. Kurze Antwort:Führen Sie sbt aus wie folgt:
setsid nohup sbt run &
Begründung:
Der Grund, warum sbt Haltestellen ist die Ankunft von SIGTTOU Signal. Es wird in mehreren Fällen an den Hintergrundprozess geliefert, einschließlich Ändern der Terminalkonfiguration . Dies ist unser Fall, weil gemäß strace -f sbt run & , sbt macht viel schwarze Magie unter der Haube, so:
[pid 16600] execve("/usr/bin/sh", ["sh", "-c", "stty -g < /dev/tty"], [/* 75 vars */] <unfinished ...>
Um dies zu umgehen, können Sie sbt ausführen in einer anderen Sitzung, um es vom aktuellen Terminal zu trennen, damit es nicht /dev/tty öffnet und unser Terminal durcheinander bringt.