首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Travis-ci在通过ssh运行bash脚本启动激活程序之后不会退出。

Travis-ci在通过ssh运行bash脚本启动激活程序之后不会退出。
EN

Stack Overflow用户
提问于 2016-03-09 10:59:32
回答 1查看 662关注 0票数 1

当我们的构建成功时,我们试图让travis不断地部署到我们自己的服务器上。

代码语言:javascript
复制
env:
  global:
    - ACTIVATOR_VERSION=1.3.7
    - ACTIVATOR_ZIP_FILE=typesafe-activator-${ACTIVATOR_VERSION}-minimal.zip
    - ACTIVATOR_ZIP_URL=http://downloads.typesafe.com/typesafe-activator/${ACTIVATOR_VERSION}/${ACTIVATOR_ZIP_FILE}
    - ACTIVATOR_BIN=${TRAVIS_BUILD_DIR}/activator-${ACTIVATOR_VERSION}-minimal/activator
    - "DEPLOY_USERNAME=#######"
    - "DEPLOY_PASSWORD=########"
    - "DEPLOY_HOST=########"

language: java

jdk:
  - oraclejdk8

addons:
  ssh_known_hosts:
    - ########
  apt:
    packages:
      - sshpass

install:
  - wget $ACTIVATOR_ZIP_URL
  - unzip -q $ACTIVATOR_ZIP_FILE

script:
  - $ACTIVATOR_BIN test

after_success:
  - sshpass -p $DEPLOY_PASSWORD ssh $DEPLOY_USERNAME@$DEPLOY_HOST -o stricthostkeychecking=no 'bash deploy.sh'

完成travis后,它在服务器上运行ssh脚本,从git中提取、停止运行激活程序并启动一个新的脚本。脚本:

代码语言:javascript
复制
#!/bin/bash
#Get the path of the local repository directory

set -o verbose

DIR="/home/ftpuser/eaglescience/"
TARGET="origin/develop"
SLEEP=1m

#echo "Go into directory " ${DIR}
cd ${DIR}
PID="`cat target/universal/stage/RUNNING_PID`"
#echo "Get the code from " ${TARGET}
git fetch --all
#echo "force checkout"
git checkout --force "${TARGET}"
#echo "Compiling activator"
activator clean stage
#echo "Running activator"
kill -15 ${PID}
target/universal/stage/bin/eaglescience -Dapplication.secret=############### &
#echo "Running..."
sleep ${SLEEP}
exit 0

这里的问题是Travis-ci在bash脚本运行后不会退出它(即使退出0)。这意味着Travis-CI将一直等待响应,直到超时并错误地处理我们的构建。

经过一段时间后,我们得到的答复如下:

代码语言:javascript
复制
[success] Total time: 33 s, completed Mar 9, 2016 11:19:20 AM
#echo "Running activator"
kill -15 ${PID}
target/universal/stage/bin/eaglescience -Dapplication.secret=########### &
#echo "Running..."
sleep ${SLEEP}
[warn] - application - system properties: application.secret is deprecated, use play.crypto.secret instead
[info] - play.api.Play - Application started (Prod)
[info] - play.core.server.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
exit 0
No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself.
The build has been terminated

我们尝试了许多不同的东西,我们尝试运行ssh命令静默。但随后,travis-ci几乎立即终止了连接,命令将不运行。我们还试图添加&& exit 0,但是服务器仍然在等待响应。

EN

回答 1

Stack Overflow用户

发布于 2017-04-23 15:22:41

尝试使用nohup将外壳文件输出到/dev/null 2>&1 &例如:nohup filename.sh > /dev/null 2>&1 &

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35889669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档