通过Hudson触发时,“Play run”退出,但从命令行正常工作

4

在hudson和play中遇到了一个奇怪的问题。通过命令行(使用“play run”命令)运行/启动新的play项目/应用程序时,应用程序可以正常启动,并等待您按下CTL + D(这是预期的)。因此,请想象以下内容为“run-play.sh”的shell脚本:

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

尝试通过 play run & 后台运行 play run 或者挂起和恢复它。你会收到一些关于 tty 的消息。我认为当你运行脚本时,需要确保 shell 支持 tty。具体来说,ssh 有一个参数 -t,可以启用 tty "Force pseudo-tty allocation"。尝试通过 ssh 运行你的脚本,并使用和不使用 -t,还可以使用额外的 -t -t(请参阅 ssh 手册)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接