2009-10-20 2 views
0

Мне нужно сделать графический интерфейс в Lazarus, из которого я запускаю некорректные команды на 12 удаленных узлах компьютера. Некоторые из этих команд никогда не выходят/возвращаются (например, я также запускаю демоны). Этот графический интерфейс должен отделять пользователя (начальный уровень) от подавляющей сложности Linux.Как использовать TProcess для запуска ssh

Я намереваюсь запускать бесполезные инструменты и скрипты через SSH. Я попытался запустить SSH (без пароля) в TProcess, но он не работает. Для этого я попробовал второй, третий и четвертый примеры TProcess, опубликованные на официальной веб-странице Lazarus (http://wiki.lazarus.freepascal.org/Executing%5FExternal%5FPrograms). Четвертый - для «большого выхода» - когда программа генерирует более 2 Кбайт вывода. Во всяком случае, программа тестирования зависает или не захватывает вывод из SSH. Кто-нибудь успешно использовал TProcess для запуска приложений малого и большого вывода?

PS: Я нахожусь на Linux, узлы также находятся на linux. Пожалуйста, дайте мне знать, если у вас есть другие идеи о том, как это сделать от Lazarus - возможно, что-то, что не обязательно связано с SSH и/или TProcess, хотя я не знаю, возможно ли это без них.


Решено.

Я думаю, что это был сбой в SSH, поскольку все примеры, которые не работали вчера, работают сегодня. Также я изменил TProcess.Options, чтобы также захватить вывод StdError.

+0

На сайте, на который вы ссылаетесь, вы посмотрели пример aspell (ссылка в нижней части страницы), которая больше похожа на то, что вы пытаетесь достичь. – RobS

+0

Я пропустил это. Я дам ему попытку в ближайшее время. Надеюсь это работает. Кажется, что обе программы были разработаны для совместной работы - это не мое дело. Во всяком случае, я очень надеюсь, что найду там разрешение. Спасибо! – Ampere

ответ

0

Решено.

Я думаю, что это был сбой в SSH, потому что все примеры, которые не работали вчера, работают сегодня. Также я изменил TProcess.Options, чтобы также захватить вывод StdError.

0

Прежде всего, можете ли вы получить TPRocess для вызова простой команды ssh, которая завершает и просто выводит информацию в файл с помощью перенаправителя файла (например, ssh ls> output)?

+0

Hi RobS. №. Содержимое выходного файла - это список в текущей текущей домашней папке вместо удаленного компьютера. (Использование: "ssh remote_server_name ls> output.txt"). Это не сработает, потому что я не знаю, когда удаленный процесс завершается. Я хочу выполнить некоторые демоны, которые занимают 0-15 секунд, чтобы начать/остановить. – Ampere

+0

Можете ли вы не обернуть запуск и остановку демонов внутри скрипта на хосте ssh, который по завершении выводит волшебную фразу на stdout, которую вы можете подождать и обнаружить? – RobS

Смежные вопросы