Chris Curvey wrote: > 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:") >
What is your use case for this? Why not make a single server process multiple providers (store them in a list or other container)? -Larry Bates -- http://mail.python.org/mailman/listinfo/python-list