加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何使用capistrano在远程计算机上启动play2应用程序

发布时间:2020-12-16 18:03:33 所属栏目:安全 来源:网络整理
导读:我正在尝试使用capistrano部署play2应用程序,但在成功部署后我无法弄清楚如何(重新)启动play2应用程序.只是触发“播放开始”将导致进程挂起,等待我按下ctrl D. 我在play app根文件夹中创建了一个启动脚本 #!/bin/bashnohup bash -c "/var/lib/play2/play sta
我正在尝试使用capistrano部署play2应用程序,但在成功部署后我无法弄清楚如何(重新)启动play2应用程序.只是触发“播放开始”将导致进程挂起,等待我按下ctrl D.

我在play app根文件夹中创建了一个启动脚本

#!/bin/bash

nohup bash -c "/var/lib/play2/play start &>> /tmp/myapp.log 2>&1" &> /dev/null &

当我在服务器上运行它时,它工作得很好.当我尝试通过ssh从我的本地机器调用它时它也可以工作.但是当我使用capistrano时,它似乎什么也没做.我的capistrano配置看起来像这样:

namespace :deploy do

  task :restart do
    stop
    sleep 1
    start
  end

  task :start do
    run "cd #{current_release}/trip-api && ./start.sh"
  end

  task :stop do
    run "cd #{current_release}/trip-api && ./stop.sh"
  end
end

在远程计算机上启动play2应用程序的最佳方法是什么?如何使用capistrano?

解决方法

看一下 deploying your application on production的播放文档

推荐的方法是打包你的应用程序

play clean compile stage

然后运行它

$target / start

要停止它,请查看文档:

The server’s process id is displayed at bootstrap and written to the
RUNNING_PID file. To kill a running Play server,it is enough to send
a SIGTERM to the process to properly shutdown the application.

在这个quickstart for Openshift中,它显示了start play as a service和stop it的另一种方式.

基本上你做这样的事情开始:

APP_COMMAND="${OPENSHIFT_REPO_DIR}target/start $PLAY_PARAMS "
"-Dhttp.port=${OPENSHIFT_INTERNAL_PORT} "
"-Dhttp.address=${OPENSHIFT_INTERNAL_IP} "
"-Dconfig.resource=openshift.conf"

echo $APP_COMMAND &>> $LOG_FILE
nohup bash -c "${APP_COMMAND} &>> ${LOG_FILE} 2>&1" &> /dev/null &

并阻止它

pid=`cat RUNNING_PID`
echo "Stopping play application" >> $LOG_FILE
kill -SIGTERM $pid

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读