A windows service script for ZEO. ZEO-WinService uses
pywin32 to wrap the
runzeo.py into a Windows Service.
This script requires
ZEO to run. I do intend to put it on PyPi when I have the time
You can run from
cmd as Administrator:
> python zeo_winservice.py
you will be given the service options, as shown below:
Usage: 'zeo_winservice.py [options] install|update|remove|start [...]|stop|restart [...]|debug [...]' Options for 'install' and 'update' commands only: --username domain\username : The Username the service is to run under --password password : The password for the username --startup [manual|auto|disabled|delayed] : How the service starts, default = manual --interactive : Allow the service to interact with the desktop. --perfmonini file: .ini file to use for registering performance monitor data --perfmondll file: .dll file to use when querying the service for performance data, default = perfmondata.dll Options for 'start' and 'stop' commands only: --wait seconds: Wait for the service to actually start or stop. If you specify --wait with the 'stop' option, the service and all dependent services will be stopped, each waiting the specified period.
Installing the Service
Before you try to install, make sure you are running
cmd as Administrator.
To install such that it will start up automatically, try shown below:
>python zeo_winservice.py --startup=auto install
This gives you the following screen with ZEO options:
Installing service ZEO WinService Start the ZEO storage server. Usage: %s [-C URL] [-a ADDRESS] [-f FILENAME] [-h] Options: -C/--configuration URL -- configuration file or URL -a/--address ADDRESS -- server address of the form PORT, HOST:PORT, or PATH (a PATH must contain at least one "/") -f/--filename FILENAME -- filename for FileStorage -t/--timeout TIMEOUT -- transaction timeout in seconds (default no timeout) -h/--help -- print this usage message and exit -m/--monitor ADDRESS -- address of monitor server ([HOST:]PORT or PATH) --pid-file PATH -- relative path to output file containing this process's pid; default $(INSTANCE_HOME)/var/ZEO.pid but only if envar INSTANCE_HOME is defined Unless -C is specified, -a and -f are required. Enter command line arguments for ZEO Service:
Now you are prompted with the different configurations for the ZEO Service that you can pass. One thing to note here is that the filename option has to absolute path, and not a relative path.
An example command line argument is:
Enter command line arguments for ZEO Service: -f D:\path\to\data\file.fs -a localhost:9999
Here I am specifying that ZEO be run with the
9999. After installing the
script, you need to start it by:
>python zeo_winservice.py start
You will also be able to access the service from
task manager or the
Windows Services app.
The logs from the service are sent to the windows
Event Log which can be accessed by opening
Event Viewer. Once you open the
Event Viewer, the logs can be found under:
Event Viewer->Windows Logs->Application
The logs from this script can be found under
ZEO WinService in the Source column.
This documentation is based on my blog post on ZEO as a Windows Service.