def run_in_process
      Open3.popen3(full_command) do |_stdin, stdout, _stderr, waith_thr|
        begin
          loop do
            IO.select([stdout])
            data = stdout.read_nonblock(8)
            logger.write_no_newline(data)
          end
        rescue EOFError # rubocop:disable Lint/HandleExceptions
          # noop
        ensure
          @status = waith_thr.value
        end
      end
    end
def run_in_process
      Open3.popen3(full_command) do |_stdin, stdout, _stderr, waith_thr|
        begin
          loop do
            IO.select([stdout])
            data = stdout.read_nonblock(8)
            logger.write_no_newline(data)
          end
        rescue EOFError # rubocop:disable Lint/HandleExceptions
          # noop
        ensure
          @status = waith_thr.value
        end
      end
    end
Runs the command in a separate process, capturing its stdout and
 execution status