在一个groovy脚本中,我用linux和windows执行一个应用程序:
def proc = command.execute()
proc.consumeProcessOutput( System.out, System.err)
println "here"
proc.waitFor()
println "never here"
但waitFor()调用永远不会返回。奇怪的是它只发生在linux上。
基于此: process.waitFor() never returns
这可能是因为没有从适当的流中读取。但是你可以看到我同时使用System.out,System.err。是否有其他可以消费的流?
答案 0 :(得分:0)
我也有类似的问题,正在运行的进程只挂在jenkins
CI服务器上。这是一个plutil
命令,并使用了consumeProcessOutputStream
方法。
因为我使用ProcessBuilder
来构建和运行进程。
def processBuilder = new ProcessBuilder('some command')
processBuilder.directory(new File('some dir')).environment().putAll([:])
processBuilder.redirectOutput(new File('out'))
processBuilder.redirectError(new File('err'))
不幸的是,不知道是什么导致了你的问题。