mirror of
https://github.com/Tautulli/Tautulli.git
synced 2025-07-10 07:22:37 -07:00
* Bump cherrypy from 18.8.0 to 18.9.0 Bumps [cherrypy](https://github.com/cherrypy/cherrypy) from 18.8.0 to 18.9.0. - [Changelog](https://github.com/cherrypy/cherrypy/blob/main/CHANGES.rst) - [Commits](https://github.com/cherrypy/cherrypy/compare/v18.8.0...v18.9.0) --- updated-dependencies: - dependency-name: cherrypy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update cherrypy==18.9.0 --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> [skip ci]
63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
# This is an example of a service hosted by python.exe rather than
|
|
# pythonservice.exe.
|
|
|
|
# Note that it is very rare that using python.exe is a better option
|
|
# than the default pythonservice.exe - the latter has better error handling
|
|
# so that if Python itself can't be initialized or there are very early
|
|
# import errors, you will get error details written to the event log. When
|
|
# using python.exe instead, you are forced to wait for the interpreter startup
|
|
# and imports to succeed before you are able to effectively setup your own
|
|
# error handling.
|
|
|
|
# So in short, please make sure you *really* want to do this, otherwise just
|
|
# stick with the default.
|
|
|
|
import os
|
|
import sys
|
|
|
|
import servicemanager
|
|
import win32serviceutil
|
|
from pipeTestService import TestPipeService
|
|
|
|
|
|
class NativeTestPipeService(TestPipeService):
|
|
_svc_name_ = "PyNativePipeTestService"
|
|
_svc_display_name_ = "Python Native Pipe Test Service"
|
|
_svc_description_ = "Tests Python.exe hosted services"
|
|
# tell win32serviceutil we have a custom executable and custom args
|
|
# so registration does the right thing.
|
|
_exe_name_ = sys.executable
|
|
_exe_args_ = '"' + os.path.abspath(sys.argv[0]) + '"'
|
|
|
|
|
|
def main():
|
|
if len(sys.argv) == 1:
|
|
# service must be starting...
|
|
print("service is starting...")
|
|
print("(execute this script with '--help' if that isn't what you want)")
|
|
|
|
# for the sake of debugging etc, we use win32traceutil to see
|
|
# any unhandled exceptions and print statements.
|
|
import win32traceutil
|
|
|
|
print("service is still starting...")
|
|
|
|
servicemanager.Initialize()
|
|
servicemanager.PrepareToHostSingle(NativeTestPipeService)
|
|
# Now ask the service manager to fire things up for us...
|
|
servicemanager.StartServiceCtrlDispatcher()
|
|
print("service done!")
|
|
else:
|
|
win32serviceutil.HandleCommandLine(NativeTestPipeService)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
main()
|
|
except (SystemExit, KeyboardInterrupt):
|
|
raise
|
|
except:
|
|
print("Something went bad!")
|
|
import traceback
|
|
|
|
traceback.print_exc()
|