我创建了一个任务,开始像
task mytask(type: Exec) {
commandLine 'ssh'
args '-f -l me myserver ./start'.split(' ')
}
并且它有效,但是,它似乎在等待作业终止。但是它永远不会终止,也不会终止。
在命令行中执行相同的操作是可行的:由于进行了-f
切换,因此ssh
命令在后台执行。
我尝试将'>&' /dev/null
(csh stdout和stderr redirect)添加到命令行,但是没有成功。同样显而易见的&
是什么也没做。我还将命令行提取到脚本中,并且始终相同:Gradle等待终止。
我已经通过使用脚本并在脚本中同时重定向stdout和stderr来解决了该问题。我的问题来自于令人困惑的重定向……通过传递,'>&' /dev/null
我重定向了远程计算机上的流,但是需要的是在本地计算机上进行重定向(即,不将重定向操作符放在引号中)。
该Exec
任务一直等待终止。要运行后台作业,您需要编写自己的任务,例如,可以使用Java ProcessBuilder
API。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句