Files
dumas_gestion/pyramidsvc.py

52 lines
1.4 KiB
Python

# uncomment the next import line to get print to show up or see early
# exceptions if there are errors then run
# python -m win32traceutil
# to see the output
#import win32traceutil
import win32serviceutil
PORT_TO_BIND = 9180
CONFIG_FILE = 'production.ini'
SERVER_NAME = 'gestion.entreprise-dumas.com'
SERVICE_NAME = "Pyramid_Service"
SERVICE_DISPLAY_NAME = "Pyramid Web Service"
SERVICE_DESCRIPTION = """Permet de laner l'application Pyramid comme un servcie."""
class PyWebService(win32serviceutil.ServiceFramework):
"""Python Web Service."""
_svc_name_ = SERVICE_NAME
_svc_display_name_ = SERVICE_DISPLAY_NAME
_svc_deps_ = None # sequence of service names on which this depends
# Only exists on Windows 2000 or later, ignored on Windows NT
_svc_description_ = SERVICE_DESCRIPTION
def SvcDoRun(self):
from cheroot import wsgi
from pyramid.paster import get_app
from pyramid.paster import setup_logging
import os, sys
path = os.path.dirname(os.path.abspath(__file__))
print(path)
os.chdir(path)
app = get_app(CONFIG_FILE)
setup_logging(CONFIG_FILE)
self.server = wsgi.Server(
('0.0.0.0', PORT_TO_BIND), app,
server_name=SERVER_NAME)
self.server.start()
def SvcStop(self):
self.server.stop()
if __name__ == '__main__':
win32serviceutil.HandleCommandLine(PyWebService)