看起来像
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"], [] <unfinished ...>要解决此问题,您可以
sbt在不同的会话中运行以将其与当前终端分离,这样它就不会打开/ dev / tty并弄乱我们的终端。



