遇到哈德森和比赛的奇怪问题。当通过命令行运行/启动新的播放项目/应用程序时(使用“播放运行”命令),应用程序启动正常并等待直到您点击CTL + D(这是预期的)。所以想象一下shell脚本'run-play.sh',其中包含以下内容,
cd my-play-app
play run
echo "Play exited"
当我在本地框上运行上面的脚本时,我看到以下输出,
--- (Running the application from SBT, auto-reloading is enabled) ---
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0%0:9000
(Server started, use Ctrl+D to stop and go back to the console...)
但是当相同的命令通过hudson UI(ssh到同一个本地框)运行时,脚本会立即退出并说“play exited”。我不知道为什么通过hudson运行相同的命令会比直接在盒子上运行它有所不同。我们正在Play 2.2.1
答案 0 :(得分:0)
尝试通过play run
后台play run &
或暂停并恢复它。您将收到有关tty
的消息。我想当你运行脚本时,你需要确保shell支持tty。具体来说,ssh
有一个参数-t
,可以启用tty“强制伪tty分配”。尝试通过使用和不使用-t
的ssh传递脚本,同时使用添加-t -t
(请参阅ssh手册页)。