C
Chris Curvey
Hi all,
I have used the win32com libraries to set up a service called
MyService under Windows. So far, so good. Now I need to run multiple
copies of the service on the same machine. I also have that working.
For monitoring and logging, I'd like each instance of the service to
know it's own identity (MyService1, MyService2, etc.)
But I can't quite seem to grasp how to do this. In the code below,
the command line parameter "-i" gives the service an identity, but how
do I get the service to understand it's identity when it is started?
Many thanks!
class MyService(win32serviceutil.ServiceFramework):
"""NT Service."""
_svc_name_ = "MyService"
_svc_display_name_ = "My Service"
_id_ = ''
def SvcDoRun(self):
provider = MyServiceClass(identifier=self._id_)
provider.start()
# now, block until our event is set...
win32event.WaitForSingleObject(self.stop_event,
win32event.INFINITE)
# __init__ and SvcStop snipped
###########################################################################
if __name__ == '__main__':
import optparse
parser = optparse.OptionParser()
parser.add_option("-i", "--identifier", dest="identifier")
(opts, args) = parser.parse_args()
if opts.number is not None:
MyService._svc_name_ += opts.identifier
MyService._svc_display_name_ += opts.identifier
MyService._provider_id_ = opts.identifier
win32serviceutil.HandleCommandLine(MyService,
customInstallOptions="i:")
I have used the win32com libraries to set up a service called
MyService under Windows. So far, so good. Now I need to run multiple
copies of the service on the same machine. I also have that working.
For monitoring and logging, I'd like each instance of the service to
know it's own identity (MyService1, MyService2, etc.)
But I can't quite seem to grasp how to do this. In the code below,
the command line parameter "-i" gives the service an identity, but how
do I get the service to understand it's identity when it is started?
Many thanks!
class MyService(win32serviceutil.ServiceFramework):
"""NT Service."""
_svc_name_ = "MyService"
_svc_display_name_ = "My Service"
_id_ = ''
def SvcDoRun(self):
provider = MyServiceClass(identifier=self._id_)
provider.start()
# now, block until our event is set...
win32event.WaitForSingleObject(self.stop_event,
win32event.INFINITE)
# __init__ and SvcStop snipped
###########################################################################
if __name__ == '__main__':
import optparse
parser = optparse.OptionParser()
parser.add_option("-i", "--identifier", dest="identifier")
(opts, args) = parser.parse_args()
if opts.number is not None:
MyService._svc_name_ += opts.identifier
MyService._svc_display_name_ += opts.identifier
MyService._provider_id_ = opts.identifier
win32serviceutil.HandleCommandLine(MyService,
customInstallOptions="i:")