Получаем exit code в net-ssh

26 октября 2008 21:23 | Комментарии
Exit Code in net-ssh

Получение кода завершения команды в net-ssh задача не сложная, но с первого взгляда интуитивно не очевидная (т.к. методы которые выполняют команду не возвращают его, так же нет свойств через которое этот код был бы доступен). Чтобы всё таки получить код завершения команды надо опуститься на уровень ниже.

Для этого потребуется открыть канал и выполнить команду в контексте этого канала и уже после этого из канала можно извлечь информацию о коде завершения. Выглядит это вот так:

Net::SSH.start("host", "login", :password => "password") do | ssh |
  ssh.open_channel do | ch |
    ch.exec("[ -d #{directory} ]") do | ch, success |
      ch.on_request("exit-status") do | ch, data |
        exit_code = data.read_long
      end
    end
  end
end
Тэги: Tips
Будь всегда в курсе последних новостей блога подписавшись на новости в формате RSS. Присоединяйся!
* * *

Добавить новый комментарий

*

(не будет опубликован) *

(если есть)

1. Проверьте комментарий перед отправкой
2. Все комментарии проходят модерацию перед публикацией в блоге