AKM
AKM

Reputation: 6555

Python win32 service starting automatically

I am writing a python win32 service below are snippet of my code when i compile the service it works but i need to go to services.msc and start it manually.

Is there an option when i install the serivce by : myservice.exe install it will starts automaticly ?

below are snippet of my code :

import win32serviceutil
import win32service
import win32event

class SmallestPythonService(win32serviceutil.ServiceFramework):
   _svc_name_ = "ser_name"
   _svc_display_name_ = "ser_descryption"
   #_svc_description_='ddd'
   def __init__(self, args):

      win32serviceutil.ServiceFramework.__init__(self, args)
                    self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)

    def SvcStop(self):

       self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
       win32event.SetEvent(self.hWaitStop)

   def SvcDoRun(self):

       win32event.WaitForSingleObject(self.hWaitStop, win32event.INFINITE)

if __name__=='__main__':

    win32serviceutil.HandleCommandLine(SmallestPythonService)

Upvotes: 13

Views: 7925

Answers (4)

Guillaume Vincent
Guillaume Vincent

Reputation: 14791

@Maciejg doesn't work for me, here the solution to start automaticaly my service builded with py2exe :

myservice.exe -auto -install

Upvotes: -1

Maciejg
Maciejg

Reputation: 3353

Use myservice.exe --startup=auto install to install the service and set it to be started automatically.

Upvotes: 21

Mark
Mark

Reputation: 108522

I would take a look at this ActiveState recipe. It's a wrapper around the win32serviceutil that shows how to auto-start the service.

Upvotes: 2

kichik
kichik

Reputation: 34704

You can use sc.exe with the create command.

sc create MyPyService binPath= "C:\myservice.exe" DisplayName= "Some Python Service"

More on this at Microsoft KB251192.

win32serviceutil also has a InstallService() function you might be able to use.

Upvotes: 1

Related Questions