我意识到这是一种特定的情况。我有一个使用SSH与Linux服务器通信的.net应用程序。我正在尝试创建一个模拟Linux服务器的C ++应用程序。因此,我在Windows系统上安装了OpenSSH,并将服务器配置为localhost。
我的SSH命令需要运行一个应用程序,然后该应用程序保持活动状态。但是由于客户端上的exec命令一直等到可执行文件运行并退出,所以我使用CreateProcess()创建了一个运行另一个可执行文件B的可执行文件A。我以为是,A可以运行B然后退出,而B仍然存活。但是实际上,当A完成并存在时,B就会死掉。
仅通过SSH直接运行A时不会发生这种情况。在客户端代码(使用Renci的C#)中,似乎没有什么导致进程B死亡,似乎是A退出导致了它。我认为这可能与sshd的运行方式有所不同,它与直接运行方式不同。谁能解释一下?
谢谢!