SshExec RunCommand在12秒后返回,并返回退出代码-1(超时?)

本文关键字:返回 代码 超时 退出 RunCommand 12秒 SshExec | 更新日期: 2023-09-27 18:20:38

尝试使用Tamir.SharpSsh.SshExec执行运行时间更长(约30秒)的sh脚本。(脚本在目标计算机上运行良好。)大约12秒后,RunCommand调用返回,代码为-1。它看起来像是一个超时,但我不知道如何配置它

这是我使用的一个代码:

var ssh = new SshExec("mylinux", "myuser", "mypassword");
ssh.Connect(22);
string stdOut = "", stdErr = "";
int processExitCode = ssh.RunCommand("./longrunning.sh", ref stdOut, ref stdErr);

SshExec RunCommand在12秒后返回,并返回退出代码-1(超时?)

经过一些调试,RunCommand方法似乎有一个错误:如果std输入流变空(因为脚本在很长一段时间内没有输出任何内容),即使脚本仍在运行,它也会返回。

作为一种变通方法,您可以在派生类上编写一个固定的RunCommand方法,并在读取流之前执行活动,等待m_channel.isClosed()变为true。