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)
Use myservice.exe --startup=auto install
to install the service and set it to be started automatically.
I would take a look at this ActiveState recipe. It's a wrapper around the win32serviceutil that shows how to auto-start the service.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With