我正在从作为某个Windows用户运行的C#代码调用plink。我把plink称为
plink.exe user @ hostname -pw密码命令
通常plink进程在命令运行后立即结束,但是当运行代码的用户没有登录到Windows时,plink进程不会结束。
随着所有这些僵尸进程的建立,无法再创建新进程......
知道为什么会这样吗?
答案 0 :(得分:2)
这可能是因为第一次连接到新服务器时PuTTY在注册表中注册主机密钥,在当前登录的用户下(在HKEY_CURRENT_USER下)。如果该用户未登录,则该部分注册表可能无法访问。
尝试将密钥移至HKEY_LOCAL_SYSTEM。这个过程在这里详细描述: http://xxlinxx.wordpress.com/2009/03/23/set-up-an-ssh-tunnel-as-a-windows-service-using-putty-plink/
根据您的具体使用案例,该页面上的最终说明可能也很重要: “此外,如果Windows SYSTEM用户无法看到SSH连接的主机密钥,则无法建立隧道。”
PS:这里有另一页here,讨论如何将证书移至HKEY_USERS.DEFAULT