質問

Pythonで行われたVMで非常にシンプルなCGIサーバーを実行しようとしています。

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

私が抱えている問題は、静的コンテンツを適切に提供し、CGI-Sを実行しようとすることです(適切な場所にあり、IhaveはそれらのCGIをApacheで使用して、その部分は間違いなく問題ではありません)が、どこかに吊るします。それは私がVMについて知らないものです。

正しい方向へのポインターは大歓迎です。 :)

更新:簡素化して、VMSでプログラムを実行し、そのプログラムの結果をどうにか取得する必要があります。サブプロセスの実行と結果を得ることへの言及は、私にとって十分です。

役に立ちましたか?

解決

からPythonポートを使用していますか http://hg.vmspython.org/vmspython/ ?

もしそうなら、私は思う このスレッド, 、 と このファイル (の形式を実装しているようです popen2)、あなたの救いの鍵を保持することができます。 VMS固有のモジュールがあるように見えます(少なくとも vms.starlet, vms.rtl.lib, vms.dvidef, vms.clidef)VMのようなものにインターフェイスを提供するポートで spawn 関数。ただし、ドキュメントはむらがあるか存在しないようです。

他のヒント

CGIHTTPServer.py 使用します os.fork 可能な場合は、 subprocess.Popen そうでない場合。

のソースコードを参照してください run_cgi 方法.

で実験します subprocess VMでそれがどのように機能するかを確認するモジュール。

サブプロセスを実行し、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またはサブプロセスモジュールのVMS詳細はわかりません。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top