私の場合、オレグアンドリヤノフの答えはうまくいきませんでした.(プロセスは起動後すぐに終了しました)
そのような場合は、代わりに下記の play ML で書かれた Mirko Stocker のコマンドを試してください。https://groups.google.com/forum/#!topic/play-framework/ZgjrPgib0-8
# screen -d -m sbt run
これも機能するはずです
sbt -Djline.terminal=jline.UnsupportedTerminal run &
ソース:https://github.com/sbt/sbt/issues/701
sbt
のようです 端末からの要求された入力。本当に入力が必要ない場合 (プログラムをバックグラウンドで実行している場合など)、次のように実行できます:
sbt run </dev/null >output-file &
詳細については、この回答を参照してください。
編集
さて、それはパズルでした。簡単な答え:sbt
を実行します 次のように:
setsid nohup sbt run &
根拠:
sbt
の理由 停留所は SIGTTOU
の到着です 信号。 端末構成の変更など、いくつかのケースでバックグラウンド プロセスに配信されます . strace -f sbt run &
によると、これが私たちのケースです。 、 sbt
このようにフードの下で多くの黒魔術を行います:
[pid 16600] execve("/usr/bin/sh", ["sh", "-c", "stty -g < /dev/tty"], [/* 75 vars */] <unfinished ...>
これを回避するには、sbt
を実行します。 別のセッションで現在の端末から切り離して、/dev/tty を開いて端末を混乱させないようにします。