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.