Как SSH.NET в Windows 10 может запустить процесс на нашем удаленном компьютере с Linux, который продолжает работать? - PullRequest
0 голосов
/ 14 февраля 2019

Этот код блокируется до тех пор, пока процесс Linux не завершится сам:

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

Итак, мы ставим «&» в конце строки RunCommand;он не блокирует RunCommand, но преждевременно завершает процесс Linux, когда приложение возвращается из функции, вызвавшей .RunCommand для запуска процесса Linux:

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

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

1 Ответ

0 голосов
/ 16 февраля 2019

Решение состояло в том, чтобы просто запустить поток .NET, который вызывает SSH.NET .RunCommand (), который блокируется до тех пор, пока исполняемый файл Linux не завершится сам, в этот момент .RunCommand () возвращается, и поток .NET продолжается, а в моем случае,заканчивается само по себе, просто возвращаясь.

Интересно, почему понизился.

...