【问题标题】:Play framework - Starting & Stopping with JenkinsPlay 框架 - 使用 Jenkins 启动和停止
【发布时间】:2016-05-26 14:05:27
【问题描述】:
我在 Play 框架上部署了一个应用程序。
按照他们的指南(并且因为我不想依赖在服务器上播放/sbt),我正在使用“sbt dist”创建包含相关 JAR 的 zip。然后我想部署/运行应用程序。
我正在通过 Jenkins 进行构建和部署。所以我有一份制作拉链的工作。然后,我将 zip 移动到该位置,并根据文档解压缩存档,转到 bin 目录并运行该应用程序。这引发了 2 个主要问题。
-
从 Jenkins 启动应用程序的最佳方式是什么,这样它就不会阻止 Jenkins 并在后台运行。目前我正在做以下事情......
nohup ./my-play-app &
有效但感觉不对。
- 如何停止应用程序?!!?我目前唯一的解决方案是在 PID 上运行“kill”命令,但感觉也不对。
谢谢!
【问题讨论】:
标签:
jenkins
playframework
【解决方案1】:
在我的情况下,我已经使用上述命令从 Jenkins 编写了 start.sh 和 stop.sh 文件,在进行新部署之前我调用了 stop.sh 文件,它将停止正在运行的应用程序,然后我正在应对在我调用 start.sh 文件之后,将新的源代码放到同一位置,这样它将运行应用程序。
检查我的 start.sh 文件 #!/bin/bash
nohup /home/PlayApplications/AppName/bin/app -Dhttp.port=5252
& Stop.sh 文件 - #!/bin/bash
pid=cat /home/PlayApplications/AppName/RUNNING_PID 2> /dev/null
如果 [ "$pid" == "" ];然后回显“播放应用程序未运行”;退出0;菲
echo "停止播放应用程序..."
kill -SIGTERM $pid 在杀死 pid 之前,我正在检查我的应用程序是否正在运行,如果正在运行,我正在使用 kill 命令停止