jawaban oleg-andriyanov tidak berhasil dalam kasus saya. (proses keluar segera setelah peluncuran)
Dalam kasus seperti itu, coba perintah Mirko Stocker yang ditulis dalam play ML di bawah sebagai alternatif.https://groups.google.com/forum/#!topic/play-framework/ZgjrPgib0-8
# screen -d -m sbt run
Ini juga harus bekerja
sbt -Djline.terminal=jline.UnsupportedTerminal run &
sumber:https://github.com/sbt/sbt/issues/701
Sepertinya sbt
masukan yang diminta dari terminal Anda. Jika tidak terlalu membutuhkan masukan (yang mungkin terjadi saat Anda menjalankan program di latar belakang), Anda dapat menjalankannya seperti ini:
sbt run </dev/null >output-file &
Lihat jawaban ini untuk detailnya.
EDIT
Ok, sekarang itu teka-teki. Jawaban singkat:jalankan sbt
sebagai berikut:
setsid nohup sbt run &
Alasan:
Alasan mengapa sbt
berhenti adalah kedatangan SIGTTOU
sinyal. Ini dikirimkan ke proses latar belakang dalam beberapa kasus, yang meliputi memodifikasi konfigurasi terminal . Ini adalah kasus kami karena menurut strace -f sbt run &
, sbt
melakukan banyak ilmu hitam di bawah tenda seperti ini:
[pid 16600] execve("/usr/bin/sh", ["sh", "-c", "stty -g < /dev/tty"], [/* 75 vars */] <unfinished ...>
Untuk mengatasinya, Anda dapat menjalankan sbt
dalam sesi yang berbeda untuk melepaskannya dari terminal saat ini, sehingga tidak akan membuka /dev/tty dan mengacaukan terminal kita.