C#
sshClient.RunCommand
可以送ls
或uname -a
,這種類型的都沒有問題,但是像以下的情況,就會卡死。
我在server寫了一個簡易的python程式做測試,當用ssh.net送出時,C#就會卡死。應該跟我用錯API有關係,我用的是以下這個
可能因為hello.py一直在等user輸入,所以sshClient.RunCommand("python hello.py")
會卡死,無法跳到下一行。
爬了下文,好像是library有缺陷。shell.Start();
這行會讓CPU使用率飆高。
參考資料
SSH.NET中有一個已知的錯誤,OutputStream當沒有收到實際的新數據時,該命令會不斷地吐出空數據。
捨棄Shell,改用ShellStream。
將inputStream與outputStart合併成一個ShellStream。
讀取改用shellStream
送出也改用shellStream