Это немного странно, но, надеюсь, я смогу это объяснить.
У меня есть пакет, который использует SSH2 (https://github.com/mscdex/ssh2-streams), чтобы сделать сеанс оболочки SSH для запуска команд на хосте.
(https://github.com/cmp-202/persistent-shell)
Обычное использование - закрытие соединения с помощью stream.close ().
В этом случае поток сеанса оболочки закрывается, а затем соединение SSH закрывается, и приложение завершает работу, возвращаясь в командную строку терминала.
Если я запускаю команду 'exit', чтобы сеанс выходил из хоста, отладка указывает, что поток закрывается и соединение закрывается. Проблема в том, что приложение не закрывается и не возвращается в командную строку терминала.
:exit command run
: exiting
: data event
exit
logout
: Stream.finish
: Stream.close
: Connection.close
Closed
[sits here waiting]
Я должен использовать ctrl-c, чтобы завершить его. Я также пытался закрыть поток со стороны приложения, но это не имело значения, или я получил ошибку, которая не удивляет меня, учитывая, что она, возможно, уже закрылась.
Вопрос в том, как запустить команду 'exit' и как закрыть приложение, как это происходит при использовании метода stream.close (). Немного озадачен тем, где его оставляют в ожидании.