通过哈德森触发“播放运行”退出,但从命令行运行正常

时间:2014-01-24 00:23:20

标签: playframework hudson

遇到哈德森和比赛的奇怪问题。当通过命令行运行/启动新的播放项目/应用程序时(使用“播放运行”命令),应用程序启动正常并等待直到您点击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

1 个答案:

答案 0 :(得分:0)

尝试通过play run后台play run &或暂停并恢复它。您将收到有关tty的消息。我想当你运行脚本时,你需要确保shell支持tty。具体来说,ssh有一个参数-t,可以启用tty“强制伪tty分配”。尝试通过使用和不使用-t的ssh传递脚本,同时使用添加-t -t(请参阅ssh手册页)。