该代码将阻塞,直到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
最佳答案
解决方案是仅启动一个调用SSH.NET .RunCommand()的.NET线程,该线程将阻塞,直到Linux可执行文件自身结束为止。此时,.RunCommand()返回,.NET线程继续运行,在我的情况下,该线程通过简单地返回。
我不知道为什么要投票。