Как PUTTY / PLINK определяет, что команда вернулась? - PullRequest
0 голосов
/ 04 июня 2010

Это перевод строки? незамедлительный? Что именно?

Попытка запустить powershell поверх plink, и команда выполняется, но plink не распознает ее завершение, и сеанс зависает. Любопытно, что команда успешно выполняется при отправке через оболочку (через Putty). Однако при отправке через plink та же команда зависает ...

Есть идеи?

Ответы [ 4 ]

1 голос
/ 07 июня 2010

Хорошо, я все еще не совсем уверен, в чем проблема, но я нашел обходной путь на форумах TeamCity.

По сути, вы хотите отобразить некоторую произвольную строку и канал, которые выводятся в ваш исполняемый файл powershell, например:

echo 'executing powershell...' | C:\windows\system32\windowspowershell \v1.0\powershell.exe  exit 1

Итак, ваша полная команда plink становится:

plink.exe user@someIp -i key.ppk -P 22 -batch -v "echo 'executing powershell...' | C:\windows\system32\windowspowershell\v1.0\powershell.exe exit 1"

Nb. Используя этот метод, Plink будет по-прежнему проходить через коды возврата и вывод на консоль.

Ссылка на форум TeamCity:

http://youtrack.jetbrains.net/issue/TW-6021

Надеюсь, это поможет

1 голос
/ 04 июня 2010

Telnet - это почти необработанное TCP-соединение. Все, что нужно для Putty - это ответ от сервера. Остальное контролируется оболочкой и сервером SSH / Telnet.

Пока ваша задача выполняется, она не возвращает командную строку.

В Linux, Unix и Mac OS X вы можете поставить & после команды, чтобы запустить ее в фоновом режиме и вернуться в командную строку.

Попробуйте запустить его в локальном терминале / командной оболочке. Вы должны увидеть то же самое.

0 голосов
/ 01 ноября 2010

Просто добавьте «return XX» в скрипт удаленной оболочки, это будет возвращаемое значение в локальной консоли. После завершения plink введите echo %errorlevel%, чтобы увидеть код возврата XX.

0 голосов
/ 28 сентября 2010

У меня была такая же проблема с другой программой.Я использовал> & 2 (перенаправить вывод в std err) после последней команды, у меня это работало нормально.

...