Я нахожу это необычайно здоровым, чтобы использовать стандартный синтаксис, например
import scala.sys.process._
val countLogger = ProcessLogger(line => {println ("out line: " + line)},
line => {println ("err line: " + line)})
val exitCode = ("cat prog.c" #&& "gcc prog.c -o prog -lm"
#&& "echo running, this may hang" #&& "prog.exe") ! countLogger
println("exitCode = " + exitCode)
Однако бывает, что последний процесс зависает. Можно ли убить его в тайм-аут?