【发布时间】:2018-11-28 07:39:54
【问题描述】:
我正在尝试从长时间运行的 SSH 命令捕获输出,该命令可能需要几秒钟才能在调用后最初生成任何文本输出,并且可能需要一分钟才能完全完成。
如果我发出一个简单的命令来执行,例如ls,下面的代码 sn-p 可以正常工作,它会立即输出到输出流中。
但是,如果我运行一个不会立即产生任何输出的命令,我不会得到任何返回,并且SSH 会断开连接。
using (var sshClient = new SshClient(target, 22, userName, password))
{
sshClient.Connect();
var cmd = sshClient.CreateCommand(command);
var result = cmd.BeginExecute();
using (var reader = new StreamReader(cmd.OutputStream))
{
while (!reader.EndOfStream || !result.IsCompleted)
{
string line = reader.ReadLine();
if (line != null)
{
Console.WriteLine(line);
}
}
sshClient.Disconnect();
}
}
【问题讨论】: