Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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:\Python27\python.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.

like image 210
user1927638 Avatar asked May 28 '14 04:05

user1927638


People also ask

How do I create a Windows service SC EXE?

sc create serviceName binpath= "path\to\service-wrapper-7.4.exe" optionName= optionValue ... where: create is the command to be run by SC (this command name is mandatory to create a service). serviceName is the name of the Windows service to be created.


1 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.

like image 130
CoreTech Avatar answered Sep 29 '22 06:09

CoreTech