Frage

Ich versuche, einen extrem einfachen CGI -Server für VMs in Python auszuführen.

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

Das Problem, das ich habe, ist, dass es statische Inhalte ordnungsgemäß dient und versucht, die CGI-S auszuführen (es ist am richtigen Ort, und Ihave hat diese CGIs mit Apache verwendet, damit ein Teil definitiv nicht das Problem ist), aber es hängt irgendwo. Es ist etwas, das ich über VMs nicht weiß.

Jeder Zeiger auf die richtige Richtung wäre geschätzt. :)

UPDATE: Vereinfacht, ich muss ein Programm auf VMs ausführen und die Ergebnisse dieses Programms irgendwie erhalten. Jeder Hinweis auf die Ausführung von Unterprozessen und das Erhalten ihrer Ergebnisse reicht für mich aus.

War es hilfreich?

Lösung

Verwenden Sie den Python -Port von http://hg.vmspython.org/vmspython/ ?

Wenn ja, denke ich Dieser Thread, und Diese Datei (die anscheinend eine Form von implementieren scheint popen2), kann die Schlüssel für Ihre Erlösung halten. Es scheint VMS-spezifische Module zu geben (zumindest vms.starlet, vms.rtl.lib, vms.dvidef, vms.clidef) im Port, die Schnittstellen zu Dingen wie VMs bereitstellen spawn Funktion. Die Dokumentation scheint jedoch fleckig oder nicht vorhanden zu sein.

Andere Tipps

CGIHTTPServer.py Verwendet os.fork wenn verfügbar, subprocess.Popen wenn nicht.

Siehe den Quellcode des run_cgi Methode.

Experimentieren mit dem subprocess Modul, um festzustellen, ob/wie es auf VMs funktioniert.

Um einen Subprozess auszuführen und seine Ausgabe auf POSIX zu erhalten:

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
>>> 

Dies ist eindeutig unter Linux, daher bin ich mir nicht sicher, ob VMS -Spezifikationen für Python oder das Subprozess -Modul.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top