这有点奇怪,但希望我能解释一下。 我有一个使用SSH2(https://github.com/mscdex/ssh2-streams)进行SSH Shell会话以在主机上运行命令的软件包。 (https://github.com/cmp-202/persistent-shell)
通常使用的方法是使用stream.close()关闭连接。 在这种情况下,将关闭外壳会话流,然后关闭SSH连接,然后应用退出并返回到终端命令提示符。
如果我运行“退出”命令,以便会话从主机注销,则调试指示流关闭并且连接关闭。问题在于该应用程序无法关闭,并且不会返回到终端命令提示符。
:exit command run
: exiting
: data event
exit
logout
: Stream.finish
: Stream.close
: Connection.close
Closed
[sits here waiting]
我必须使用ctrl-c终止它。我也尝试过从应用程序端关闭流,但这没什么区别,或者我遇到了一个错误,鉴于它可能已经关闭,这并不令我惊讶。
问题是如何像使用stream.close()方法时一样运行“ exit”命令并必须关闭应用程序。关于它在哪里等待的问题,有些困惑。