# File lib/net/ssh/shell/process.rb, line 33
    def run
      if state == :new
        state = :starting
        manager.open do
          state = :running
          manager.channel.on_data(&method(:on_stdout))
          manager.channel.on_extended_data(&method(:on_stderr))
          manager.channel.on_close(&method(:on_close))

          callback.call(self) if callback

          cmd = command.dup
          cmd << ";" if cmd !~ /[;&]$/
          cmd << " DONTEVERUSETHIS=$?; echo #{manager.separator} $DONTEVERUSETHIS; echo \"exit $DONTEVERUSETHIS\"|sh"

          send_data(cmd + "\n")
        end
      end

      self
    end