Я запускаю команду оболочки через системный скрипт Groovy.Это длительный процесс, около 30 минут, и он довольно многословный.Но, как написано, команда ожидает завершения команды перед печатью stdout или stderr.Есть ли способ заставить вывод идти на консоль по мере выполнения скрипта (как это было бы в терминальной сессии).
def sout = new StringBuffer(), serr = new StringBuffer()
def proc = "/some/long/running/command".execute()
proc.consumeProcessOutput(sout, serr)
println "STDOUT\n $sout"
println "STDERR\n $serr"
Обновление: это код, который я пытаюсь на основе ответа.Он ничего не печатает, пока процесс не завершится или не будет уничтожен.
def cmd = "/home/adam/test.sh"
StringBuffer sout = new StringBuffer()
StringBuffer serr = new StringBuffer()
def process = cmd.execute()
process.waitForProcessOutput sout, serr
sout.each
println "Line ${it}"
}