Аргументы пользовательских команд службы Python - PullRequest
6 голосов
/ 29 октября 2009

В настоящее время я работаю над программой на python, которая работает как служба Windows, используя win32service и win32serviceutil. Служба работает так, как должна, и даже после использования py2exe все в порядке (служба отслеживает целевую папку (и) и автоматически создает вновь созданные файлы FTP в указанном месте FTP). Однако я хотел бы добавить некоторые аргументы командной строки (помимо установки, удаления, запуска, остановки и т. Д.) Для указания локальных каталогов и каталогов FTP. Единственная документация на это - то, что я нашел в: http://www.py2exe.org/old/

"При желании вы можете указать атрибут« cmdline-style »для py2exe, допустимыми значениями являются« py2exe »(по умолчанию),« pywin32 »или« custom ».« Py2exe »указывает, что традиционная командная строка всегда поддерживается by py2exe. 'pywin32' поддерживает те же аргументы командной строки, которые поддерживает pywin32 (т. е. те же аргументы, которые поддерживаются при запуске службы из файла .py.) 'custom' означает, что ваш модуль должен предоставлять 'HandleCommandLine' функция, которая отвечает за всю обработку командной строки. "

Любая помощь будет оценена в правильном направлении. Пожалуйста, дайте мне знать, если какой-либо код необходим для ясности.

Спасибо, Зак

1 Ответ

3 голосов
/ 29 октября 2009

здесь - хороший пример того, как сделать сервис с пользовательским HandleCommandLine classmethod - это часть Pyro, но не зависит от Pyro, скорее это утилита "абстрактный базовый класс", которая Вы можете создать подкласс и получить услугу с минимальными усилиями, просто установив несколько вещей в своем подклассе. Для ваших конкретных потребностей вы можете использовать его как шаблон для копирования и редактирования, чтобы получить необходимую обработку командной строки!

...