How can I make the Ant task “SSHExec” run a command and exit before it's completed?
我有一个Ant构建脚本,它连接到远程服务器并使用sshexec启动本地构建。这个构建大约需要1分钟,完成后它会向我发送一封电子邮件,但我有一个Ant任务:
1 2 3 4 5 6 | <sshexec host="${deploy.host}" username="${deploy.username}" trust="true" keyfile="${user.home}/.ssh/id_rsa" command="~/updateGit.sh"/> |
将等待脚本完成。我试图传递一个这样的
1 2 3 4 5 6 | <sshexec host="${deploy.host}" username="${deploy.username}" trust="true" keyfile="${user.home}/.ssh/id_rsa" command="~/updateGit.sh &"/> |
但这似乎没什么区别。如果这个额外的细节对任何人都有帮助,脚本会生成大量的输出,并且缓慢的互联网连接会导致脚本花费更长的时间(因为它的输出正在被管道返回,这种方法的假设是,我只关心输出完成后的输出,所以如果我将其打包到电子邮件中,我可以在构建时监视我的收件箱,从而获得好处关闭,基本上是穷人的持续整合)
使用这个答案(和
1 2 3 4 5 6 | <sshexec host="${deploy.host}" username="${deploy.username}" trust="true" keyfile="${user.home}/.ssh/id_rsa" command="nohup ~/updateGit.sh > /dev/null 2> error.log < /dev/null &"/> |