从groovy w / out timeout执行shell命令

时间:2014-10-13 15:48:05

标签: groovy

在groovy中,你可以像这样执行shell命令:

def process = "<some shell command>".execute()
println process.text()

但是如果命令是一个长时间运行的命令,我发现它超时了。有没有办法防止这种情况发生?

1 个答案:

答案 0 :(得分:2)

我做了一些长时间运行的东西(45分钟+)这样做,我建立了一个cmdLine对象,它是要运行的命令行,然后:

def fose = new FileOutputStream(logFileErr)
def foss = new FileOutputStream(logFileStd)
Process proc = cmdLine.execute()
fose << proc.in
fose << proc.err
foss << proc.out
proc.waitFor()

它已经为我工作了几年(到目前为止我还没有重新考虑过这个解决方案)