# 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