2009-10-28 21 views
6

私は現在、win32serviceとwin32serviceutilを使用してWindowsサービスとして動作するPythonプログラムを作成しています。サービスはpy2exeを使用した後でも実行されますが、サービスはターゲットフォルダを監視し、FTPは指定されたFTPの場所に新しく作成されたファイルを自動的に監視します。しかし、私は、ローカルとFTPディレクトリを指定するためのいくつかのコマンドライン引数(インストール、削除、開始、停止などに加えて)を追加したいと思います。 http://www.py2exe.org/old/Pythonサービスのカスタムコマンド引数

「オプションで、有効な値は 『py2exe』(デフォルト)であることと、py2exeための 『コマンドラインパラメータスタイル』属性を指定することができ、 『pywin32』または ':この上の唯一のドキュメントは私が見つけたものです'pywin32'は、pywin32がサポートしているのと全く同じコマンドライン引数をサポートしています(つまり、.pyファイルからサービスを実行しているときにサポートされているのと同じ引数です)カスタム 'は、モジュールがすべてのコマンドライン処理を担当する' HandleCommandLine '関数を提供することが期待されることを意味します。

正しい方向に指摘されてもらえたら助かります。わかりやすくするためにコードが必要な場合はお知らせください。

おかげで、ザック

答えて

3

hereは、カスタムHandleCommandLineクラスメソッドを使用してサービスを作成する方法の良い例である - それはパイロの一部ですが、パイロに依存関係がない、むしろそれは、そのユーティリティ「抽象基底クラス」ですサブクラスでいくつか設定するだけで、サブクラス化して、サービスを最小限に抑えることができます。あなたの特定のニーズに合わせて、それをコピーして編集するテンプレートとして使用して、必要なコマンドライン処理を得ることができます!

+0

これはちょうど私が必要としたものかもしれません、私は自分のコードに適用した後に投稿します。 –

+0

これは興味深い修正でした。基本的に抽象基本クラスBasicNTServiceは、サービスパラメタ(通常はインストール、削除、更新など)を受け取ります。次に、コマンドラインに新しいプロンプトが表示され、追加のパラメータがレジストリに格納され、取得されます。 –