我创建了一个启动远程作业的任务,例如
task mytask(type: Exec) {
commandLine 'ssh'
args '-f -l me myserver ./start'.split(' ')
}
它有效,但是,它似乎等待作业终止。但它永远不会终止,也不应该终止。
从命令行执行相同的操作是有效的:因为-f
切换ssh
命令在后台执行。
我尝试添加'>&' /dev/null
(csh stdout 和 stderr 重定向)到命令行,但没有任何成功。还有显而易见的&
什么也没做。我还将命令行提取到脚本中,它总是相同的:Gradle 等待终止。
Solution
我通过使用脚本并在脚本中重定向 stdout 和 stderr 解决了这个问题。我的问题来自于令人困惑的重定向......通过'>&' /dev/null
我重定向了远程计算机上的流,但需要的是本地计算机上的重定向(即,不将重定向运算符放在引号中)。
Exec 任务始终等待终止。要运行后台作业,请使用 Ant 任务“Exec”
ant.exec(
executable: 'ssh',
spawn: true
) {
arg '-f'
arg '-l'
arg 'me'
arg 'myserver'
arg './start'
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)