2009-10-28 88 views
6

我目前正在使用win32service和win32serviceutil作为Windows服务运行的python程序。该服务运行,因为它应该,甚至在使用py2exe后,一切都很好(该服务监视目标文件夹和autmotically FTP新创建的文件到指定的FTP位置)。但是,我希望添加一些命令行参数(除了安装,删除,启动,停止等等)以指定本地和FTP目录。关于这一点的唯一文档是我发现的: http://www.py2exe.org/old/Python服务自定义命令参数

“或者,你可以指定一个‘CMDLINE式’属性py2exe,与有效值是‘py2exe’(默认),‘pywin32’或' custom'。'py2exe'指定了py2exe始终支持的传统命令行,'pywin32'支持与pywin32支持的完全相同的命令行参数(即从.py文件运行服务时支持相同的参数)''定制“意味着你的模块需要提供一个'HandleCommandLine'功能,它负责所有的命令行处理。”

任何帮助将不胜感激,指向正确的方向。为了清晰起见,请告诉我是否需要任何代码。

谢谢,扎克

回答

3

here是如何使服务具有自定义HandleCommandLine类方法一个很好的例子 - 它的焦的一部分,但对火法没有相关性,而这是一个实用程序“抽象基类”即你可以通过在你的子类中设置一些东西来继承子类并获得一个服务,只需要最小的麻烦。针对您的特定需求,您可以将其用作模板进行复制和编辑,以获得您想要的命令行处理!

+0

这可能正是我所需要的,我将它应用到我的代码后回复。 – 2009-10-29 13:26:30

+0

这是一个有趣的修复。基本上,抽象基类BasicNTService按正常方式接收服务参数(安装,删除,更新等)。然后,在命令行上有一个新的提示,用于通过注册表存储和检索的其他参数。 – 2009-10-29 20:31:49