Pregunta

Estoy tratando de ejecutar un servidor CGI extremadamente simple en máquinas virtuales realizadas en Python.

import sys    
from BaseHTTPServer import HTTPServer
from CGIHTTPServer import CGIHTTPRequestHandler    
server_address=('',8080)
httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
httpd.serve_forever()

El problema que tengo es que sirve contenido estático correctamente e intenta ejecutar el CGI-S (está en el lugar correcto, y ha usado esos CGI con Apache para que esa parte definitivamente no sea el problema) pero cuelga en algún lugar. Es algo que no sé sobre máquinas virtuales.

Se agradecería cualquier puntero a la dirección correcta. :)

ACTUALIZACIÓN: Simplificado, necesito ejecutar un programa en máquinas virtuales y obtener los resultados de ese programa de alguna manera. Cualquier referencia para ejecutar subprocesos y obtener sus resultados es suficiente para mí.

¿Fue útil?

Solución

¿Estás usando el puerto de Python desde http://hg.vmspython.org/vmspython/ ?

Si es así, creo este hilo, y Este archivo (que parece implementar una forma de popen2), puede contener las llaves de su salvación. Parece haber módulos específicos de máquinas virtuales (al menos vms.starlet, vms.rtl.lib, vms.dvidef, vms.clidef) en el puerto que proporciona interfaces a cosas como las máquinas virtuales spawn función. Sin embargo, la documentación parece ser irregular o inexistente.

Otros consejos

CGIHTTPServer.py usos os.fork si está disponible, subprocess.Popen que no.

Ver el código fuente del run_cgi método.

Experimentar con el subprocess Módulo para ver si/cómo funciona en máquinas virtuales.

Para ejecutar un subproceso y obtener su salida en 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
>>> 

Esto está claramente en Linux, por lo que no estoy seguro de ningún detalle de máquinas virtuales para Python o el módulo de subprocesos.

http://docs.python.org/library/subprocess.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top