To maybe clarify a bit more about what the OP said...
The OP combined the Windows "Service installation program" and the "Service itself" into one file. This is fine although often this would be 2 separate programs. The installation option makes entries into the Windows Registry about this new service and then exits - that is all it does.
A Windows service is like a unix daemon. This is a process that runs "in the background" with no connection to a command line terminal. There are many examples of things like that. A database server would be an example.
I have verified that the installation part "works". The service is "installed" and looks normal to the Windows O/S. I can start the service with the "net start" command or from the GUI.
The issue here is how to run an external program and get its result from the Service environment? The service is not started from a command line shell and doesn't have connections to STDOUT,STDERR,STDIN. I found that I could use backticks to run the ping program and get the output of ping although I was not able to get ping to work with run() or run3().
So I found a way to get ping into the Service's log, but this is only a partial solution. This is an question about the environment that the service is running in.
|