Jenkins 运行 通过 SSH 的 Shellscript 没有离开控制台

Jenkins run Shellscript via SSH is not leaving console

我正在使用 Jenkins 部署我的播放应用程序我已经为 jenkins 添加了 SSH 支持,我通过 ssh 连接到测试服务器,然后我通过 ssh 运行 一个 shel 脚本。

工作正常。

不工作是在 jenkins 中完成工作。

shell 脚本中的命令如下:

/usr/src/activator-dist-1.3.10/bin/activator "~ run" &

只有 运行 激活器,构建和 运行 项目

但是当构建应用程序并且激活器 运行 时,Jenkins 作业没有完成...它总是挂在控制台中

看起来像这样:

当您通过 ssh 运行 脚本时,它将保持打开状态,直到 stdout/stderr 关闭或发生超时。在 Jenkins 中,脚本似乎挂起了。 因此,如果您 运行 将脚本作为后台作业,请确保将其所有输出重定向到某个地方:

nohup yourCommand < /dev/null > /dev/null 2>&1 &

nohup yourCommand < /dev/null >> logfile.log 2>&1 &

有关详细信息,请参阅 SSH Frequently Asked Questions