在groovy中,你可以像这样执行shell命令:
def process = "<some shell command>".execute()
println process.text()
但是如果命令是一个长时间运行的命令,我发现它超时了。有没有办法防止这种情况发生?
答案 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()
它已经为我工作了几年(到目前为止我还没有重新考虑过这个解决方案)