Простой веб -сервер CGI в Python на виртуальной машине
Вопрос
Я пытаюсь запустить чрезвычайно простой сервер CGI на виртуальной машине, выполненном в Python.
import sys
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler
server_address=('',8080)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()
Проблема, которую у меня есть, заключается в том, что он служит статическим контентом должным образом и пытается выполнить CGI-S (он находится в нужном месте, и я использовал эти CGIS с Apache, так что эта часть определенно не проблема), но она где-то висит. Это то, что я не знаю о виртуальных машинах.
Любой указатель на правильное направление будет оценено. :)
Обновление: упрощено, мне нужно выполнить программу на виртуальной машине и как -то получить результаты этой программы. Любая ссылка на выполнение подпроцессов и получение их результатов достаточно для меня.
Решение
Вы используете порт Python от http://hg.vmspython.org/vmspython/ ?
Если так, я думаю эта ветка, а также этот файл (что, по -видимому, реализует форму popen2
), может удерживать ключи от вашего спасения. По-видимому, есть виртуальные модули (по крайней мере, vms.starlet
, vms.rtl.lib
, vms.dvidef
, vms.clidef
) в порту, который обеспечивает интерфейсы таким вещам, как виртуальные машины spawn
функция Однако документация, кажется, не существует.
Другие советы
CGIHTTPServer.py
Использование os.fork
если доступно, subprocess.Popen
если не.
Смотрите исходный код run_cgi
метод.
Экспериментируйте с subprocess
Модуль, чтобы увидеть, работает ли/как это работает на виртуальных машинах.
Чтобы выполнить подпроцесс и получить его вывод на POSIX:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from subprocess import Popen, PIPE
>>> output = Popen(['/bin/ls', '/'], stdout = PIPE).communicate()[0]
>>> print output
bin
boot
dev
etc
home
..snip..
root
sbin
>>>
Это явно на Linux, поэтому я не уверен в каких -либо спецификациях виртуальных машин для Python или модуля подпроцесса.