Удаленное выполнение интерактивной программы CLI - PullRequest
0 голосов
/ 15 декабря 2011

Я написал небольшое клиент-серверное приложение, которое может выполнять системные команды удаленно.Он отлично работает с неинтерактивными программами, когда вам нужно только прочитать их вывод.Однако существует ли надежный способ отправки пользовательского ввода в процесс, запущенный, если это требуется?Как мне узнать, запрашивает ли процесс какой-либо ввод?

1 Ответ

1 голос
/ 15 декабря 2011

Взгляните на «ожидается». Это порт http://en.wikipedia.org/wiki/Expect

http://expectj.sourceforge.net/

Пример:

// Create a new ExpectJ object with a timeout of 5s
ExpectJ expectinator = new ExpectJ(5);

// Fork the process
Spawn shell = expectinator.spawn("/bin/sh");

// Talk to it
shell.send("echo Chunder\n");
shell.expect("Chunder");
shell.send("exit\n");
shell.expectClose();
...