Windows 10 上的 SSH.NET 如何在我们保持 运行 的远程 Linux 框上启动进程?
How can SSH.NET on Windows 10 start a process on our remote Linux box that stays running?
此代码会阻塞,直到 Linux 进程自行结束:
cSSH.Connect()
cSSH.RunCommand("<our path>linux_process”) <<< BLOCKS UNTIL linux_process ENDS ITSELF
cSSH.Disconnect()
cSSH.Dispose()
因此,我们将“&”放在RunCommand字符串的末尾;它不会阻止 RunCommand,但会在应用 returns 从调用 .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() returns .NET 线程继续,在我的例子中,通过简单地返回结束。
我想知道为什么投反对票。
此代码会阻塞,直到 Linux 进程自行结束:
cSSH.Connect()
cSSH.RunCommand("<our path>linux_process”) <<< BLOCKS UNTIL linux_process ENDS ITSELF
cSSH.Disconnect()
cSSH.Dispose()
因此,我们将“&”放在RunCommand字符串的末尾;它不会阻止 RunCommand,但会在应用 returns 从调用 .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() returns .NET 线程继续,在我的例子中,通过简单地返回结束。
我想知道为什么投反对票。