Доступ к stdin процесса exec'd можно получить через proc.getOutputStream()
. Все, что вы отправите через этот поток, будет доставлено процессу ssh-keygen через его stdin . [ 113]
Конечно, если вы не отправите ожидаемый ввод, процесс может просто вернуть какое-то предупреждающее сообщение и продолжить ожидание. То, что вам нужно отправить, будет зависеть от того, на какой процесс вы его отправляете.
Также: вы обрабатываете вывод ssh-keygen, читая InputStream и Error Stream. Тем не менее, вы, вероятно, захотите сделать это в отдельном потоке - так, как вы это делаете сейчас, если процесс пишет слишком много в stderr перед записью в stdout, он может зависнуть из-за полного буфера ...
Это довольно легко, это должно получить Вас актуальный очень быстро
Один из самых больших ресурсов для программирования CGI является домашней страницей CGI. После того как Вы сделаны с этим, ознакомившись с cgi, и cgitb модули должны быть Вашей следующей задачей.
Но не обесценивайте изучение WSGI (libref) и использование CGI-to-WSGI адаптера, такого как flup.
Все найденные через Google...
И смотрите на pyblosxom также: http://pyblosxom.svn.sourceforge.net/viewvc/pyblosxom/ это - система блога, записанная в Python, использует CGI.
То, что я не понимаю, - то, почему Вы настаиваете на CGI, потому что это - Общий шлюзовой интерфейс, предназначенный, чтобы использоваться в сочетании с веб-сервером как апач, которого Вы, конечно, не имеете на том устройстве.
Я предложил бы, чтобы Вы использовали wsgiref.simple_server, который является поточным веб-сервером здания сингла, поставленным с python 2.5 и (если Вы имеете 2.4, или ниже Вас может d/l wsgiref от pypi, это - чистый пакет Python). Тем путем можно также обойти грязное программирование CGI и записать wsgi приложение:
from wsgiref.simple_server import make_server
def application(environ, start_response):
start_response('200 OK', [
('Content-Type', 'text/plain'),
])
return ['Hello World!']
httpd = make_server('', 8000, application)
httpd.serve_forever()