Creating a Python script that runs as a Windows service using sc.exe

Question:

I would like to create a Windows Service using a batch script for a Python script that I have written. I decided to do some experimenting with sc. Here is the line that I used:

sc create RoundTripService binPath="C:Python27python.exe C:script.py" type=own error=ignore start=auto

Unfortunately, when I do so, the console is giving me a printout of the Description/Usage/Options, etc. of sc instead.

Asked By: user1927638

||

Answers:

SC is overly strict about spaces in its command line and you are receiving the error because you have no space after the “binPath=” and “type=” components. Run

SC CREATE /?

at a DOS prompt to see how your command line should be constructed.

But even if you get SC to install python, you will run into the dreaded “Error 1053” when you attempt to start the service! This is because Python.exe is not a true Windows Service executable and can not react to the Windows Service Control Manager’s request to start the service. You will need a “service wrapper” (like Microsoft’s SRVANY, though it has some shortcomings) to intercept the requests from the Windows Service Control Manager and start your python script.

Answered By: CoreTech