2012-03-06 26 views
1

コマンドを待つ(たぶんキューに入れる)単純なサーバ/デーモンを作成し、受け取った入力に基づいて他のコマンドを実行する必要があります。ここに、より詳細な要件があります。Pythonクロスプラットフォームリスナーサーバのための推奨事項

  • 私が書き込んだ他のPythonコードを使用する必要があるので、Pythonにする必要があります。
  • ニーズ(Windows上でWindowsサービスとしてLinux上init.dディレクトリサービスとして実行していると されます)は、少なくともLinuxおよびWindows上で動作するように
  • 通信媒体は、できるだけシンプルにし、うまくいけば、コマンドなければならないが送信することができますバッチスクリプトからサーバーに送信
  • コマンドは同じマシンからのものです。パフォーマンスは重要ではありません。
  • Windowsへのインストール(スクリプトからサーバーにコマンドを送信するために必要なすべてのライブラリを含む)は簡単に行う必要があります。すべてが単一の.exeに包まれることができるならば、すべてがより良い。

これに最も適したスタックは何ですか?

  • CherryPyに(Windowsが...ぐふ、しかしcURLを持っていません)
  • DBUSとwindbus(...の前にこれらを使用することはありません)

答えて

2

:私はほんの数漠然としたアイデアを持っています私の経験では(あなたが記述したものと同様の3つまたは4つのアプリケーションを実装しました)、すべてが等しく作成されています。SocketServer.TCPServerというサブクラスを使用して簡単にわかりました。 。これにより、詳細を完全に制御することができます(ストリーミングが必要ですか、ステートフルな接続が必要ですか?問題ありません)。ソケットの仕組みに関する基本的な知識があれば、それほど難しいことではありません。

Windowsでは、py2exeがうまく機能することを理解しています。

あなたが考慮したいと思うかもしれないカップルの選択肢/ツール:

  • SimpleXMLRPCServerxmlrpclib - あなたはHTTP + XMLRPCによる制約と一緒に暮らすことができる場合(ステートレス、ストリーミングはトリッキーである)これはあなたを取得し、約5分で実行されます。また、SimpleXMLRPCServerはシングルスレッドであることにも注意してください。マルチスレッド(またはマルチプロセスなど)にすることは可能ですが、それは少し時間がかかります。 Linuxでは、python-daemon
  • はdaemonizingの可能性ですが、私は通常、(それはあなたのプラットフォーム上で利用できる場合)start-stop-daemonは単純であることがわかってきました
  • Is it possible to run a Python script as a service in Windows? If possible, how?あなたがサービスとしてスクリプトを実行するに役立つはずです。
関連する問題