Процесс plink не заканчивается, если вызывающий пользователь не авторизован - PullRequest
1 голос
/ 01 июня 2011

Я звоню plink из кода C #, который работает от имени определенного пользователя Windows. Я называю плинк как

plink.exe user @ hostname -pw password команды

Обычно процесс plink заканчивается сразу после выполнения команд, но когда пользователь, под которым выполняется код, не вошел в Windows, процесс plink не заканчивается.

Когда все эти процессы-зомби нарастают, наступает момент, когда новые процессы больше не могут быть созданы ...

Есть идеи, почему это происходит?

1 Ответ

2 голосов
/ 09 июня 2011

Это может быть связано с тем, что при первом подключении к новому серверу 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: здесь есть еще одна страница здесь , в которой говорится о перемещении сертификата в HKEY_USERS.DEFAULT

...