def run
      begin 
        @process.start
      rescue ChildProcess::LaunchError => e
        raise StandardError.new(e.message)
      end

      begin 
        @process.poll_for_exit(@timeout)
      rescue ChildProcess::TimeoutError
        @timedout = true
        @process.stop(@timeout)
      end
    end
def run
      begin 
        @process.start
      rescue ChildProcess::LaunchError => e
        raise StandardError.new(e.message)
      end

      begin 
        @process.poll_for_exit(@timeout)
      rescue ChildProcess::TimeoutError
        @timedout = true
        @process.stop(@timeout)
      end
    end
Initialize a new process

 cmd - An array of shellwords of a command
 timeout - Time until the process is automatically killed
 out - Path to send stdout of process
 err - Path to send stderr of process
 Runs a process and with a specified command and timeout

 Returns nothing