"""Basic CherryPy Windows service for QATrack+...cobbled togetherfrom various places online.Requires Mark Hammond's pywin32 package."""importcherrypyimportwin32serviceutilimportwin32serviceimportwin32eventimportsysimportosfromqatrackimportwsgiDEPLOY_DIRECTORY="C:/deploy/qatrackplus/"ERROR_LOG=os.path.join(DEPLOY_DIRECTORY,"logs","cherry_py_err.log")STD_ERR=os.path.join(DEPLOY_DIRECTORY,"logs","std_err.log")STD_OUT=os.path.join(DEPLOY_DIRECTORY,"logs","std_out.log")sys.stdout=open(STD_OUT,'a')sys.stderr=open(STD_ERR,'a')classQATrackService(win32serviceutil.ServiceFramework):"""NT Service."""_svc_name_="QATrackCherryPyService"_svc_display_name_="QATrack CherryPy Service"defSvcDoRun(self):sys.path.append(DEPLOY_DIRECTORY)os.environ['DJANGO_SETTINGS_MODULE']='qatrack.settings'os.chdir(DEPLOY_DIRECTORY)cherrypy.tree.graft(wsgi.application)cherrypy.config.update({'global':{'server.socket_port':8081,# change port to 8081!'log.error_file':ERROR_LOG,'log.screen':False,'tools.log_tracebacks.on':True,'engine.autoreload.on':False,'engine.SIGHUP':None,'engine.SIGTERM':None}})cherrypy.engine.start()cherrypy.engine.block()defSvcStop(self):self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)cherrypy.engine.exit()self.ReportServiceStatus(win32service.SERVICE_STOPPED)# very important for use with py2exe# otherwise the Service Controller never knows that it is stopped !if__name__=='__main__':win32serviceutil.HandleCommandLine(QATrackService)
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.