Windows 10上的SSH.NET如何在仍在运行的远程Linux机器上启动进程?

时间:2019-02-14 19:59:19

标签: .net linux ssh ssh.net

以下代码将阻塞,直到Linux进程自身结束:

cSSH.Connect()
cSSH.RunCommand("<our path>linux_process”)  <<< BLOCKS UNTIL linux_process ENDS ITSELF
cSSH.Disconnect()
cSSH.Dispose()

因此,我们然后在RunCommand字符串的末尾添加“&”;它不会阻止RunCommand,但会在应用程序从调用.RunCommand的函数返回以启动Linux进程时过早地结束Linux进程:

cSSH.Connect()
cSSH.RunCommand("<our path>linux_process &”)  
cSSH.Disconnect()
cSSH.Dispose()

return      <<<<<<  CAUSES linux_process TO IMMEDIATELY END

1 个答案:

答案 0 :(得分:0)

解决方案是仅启动一个调用SSH.NET .RunCommand()的.NET线程,该线程将阻塞,直到Linux可执行文件自身结束为止。此时,.RunCommand()返回,.NET线程继续,对于我而言,只需返回就可以结束自己。

我想知道为什么投票失败。