Run/control External Processes

Last updated on 01 November, 2020

The most robust way to call external processes is to use the Groovy method waitForProcessOutput.

For example:

command="../bin/ipmiutil sensor -c -N " + hostname + " -U "+User+" -P " +Pass
 
 def sout = new StringBuffer()
 def serr = new StringBuffer()
 
 def proc = command.execute()
 proc.waitForProcessOutput(sout, serr)
 
 if(proc.exitValue() == 0) {
     output=sout.toString()
     output.eachLine {
        if (it =~ / Full /) {
            elements=it.split(/ *\| */)
            if ( elements[5]=="OK" ) { //only discover those reporting a status
                 println elements[0]+"##"+elements[4]+":"+elements[3]
                 }
            }
       }
 else {
 // error handling ...}