Reputation: 6555
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
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
Reputation: 3353
Use myservice.exe --startup=auto install
to install the service and set it to be started automatically.
Upvotes: 21
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
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