Say I have a third party Application that does background work, but prints out all errors and messages to the console. This means, that currently, we have to keep a user logged on to the server, and restart the application (double-click) every time we reboot.
Not so very cool.
I was kind of sure, that there was an easy way to do this - a generic service wrapper, that can be configured with a log file for stdout
and stderr
.
I did check svchost.exe
, but according to this site, its only for DLL stuff. Pity.
EDIT: The application needs to be started from a batch file. FireDaemon seems to do the trick, but I think it is a bit overkill, for something that can be done in <10 lines of python code... Oh well, Not Invented Here...
Check out srvany.exe
from the Resource Kit. This will let run anything as a service.
You can pass parameters in the service definition to your executable via srvany.exe
so you could run a batch file as a service by seting the registry as follows:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MyService\Parameters]
"Application"="C:\\Windows\\System32\\cmd.exe"
"AppParameters"="/C C:\\My\\Batch\\Script.cmd"
"AppDirectory"="C:\\My\\Batch"
Note: if you set up these keys in RegEdit
rather than using a file you only need single backslashes in the values.