start service with parameters on restart
i'm charged with maintaining an application which has multiple listener
services.
the first service can be set to auto.
subsequent services need to be passed a parameter to start.
in 2003 i've used sc.exe to pass a parameter to a service on startup and
this works fine. i could set it so that the services were started by the act
of logging in.
however, i'd like the services to come up automatically on restart without
the need for user intervention, since that's what services are supposed to do.
my question is, therefore, the one in the title:
how can i start a service in windows server 2003 on machine restart and pass
it a parameter?
many thanks,
e.
Re: start service with parameters on restart
Have a look at the Windows Time service. It starts automatically at boot
time and it uses parameters.
HKLM\SYSTEM\CurrentControlSet\Services\W32Time
Re: start service with parameters on restart
specifically, i need to start the service as if i'd typed "-nIS1527" in the
"Start Parameters" textbox.
i can't see how that relates to the W32Time registry keys.
Re: start service with parameters on restart
"No joy" sounds great but you need to be just a little more
specific, perhaps by posting
- What exactly you did with your parameters;
- How you checked what you did with your parameters;
- What you did with your service;
- How you determined that it did not work.
Re: start service with parameters on restart
sorry, i was leaving the office, i should have put more detail in.
the parameter is a port number, to which the client connects.
(a small complication is that if two services come up with the same port
number both are broken and the machine needs to be restarted)
if a service is started with no parameters, either automatically or by
clicking start in the service manager, it uses the default port 1526.
starting the service with a parameter of "-nIS1527" tells the service to use
port 1527 instead.
i applied your suggested change, adding the parameter to the image path and
starting the service.
when i tried to communicate with the service on the non-default port it
wouldn't.
i could communicate over port 1526, though, suggesting that the parameter
was not being passed.
Re: start service with parameters on restart
It appears that the service start process won't recognise any changes
made directly to the registry. You can probably get around the problem
by following this sequence:
1. Use sc.exe to disable the service.
2. Make the registry change.
3. Use sc.exe to enable the service.
4. Start the service.
The syntax for sc.exe is as follows:
sc config NameOfService start= disabled
sc config NameOfService start= manual
The service name must be the short name, not the "DisplayName".
Note the space after the "=".
Re: start service with parameters on restart
Quote:
service start process won't recognise any changes made directly to the
registry
why, then, does the displayed "path to executable" change?
is this a bug?
Re: start service with parameters on restart
Many applications and many Windows components read the
registry at startup time only. When you hack the registry directly
then you need to make them aware of the change. This is by
design.
Re: start service with parameters on restart
i've rebooted the server with the registry hack in place.
the service is still coming up listening on the default port and ignoring
the passed parameter.
"so why spend so much time on this minor point" you ask.
well, for a start your suggested solution does not work.
in addition, your explanation of why it didn't work was a load of rubbish.
if i change the value of ImagePath to a path that doesn't exist the service
manager applies the new value immediately and complains loudly.
which leaves me exactly where i started, except with fourteen levels of
nested comments going nowhere.
moving on, since i can start the service using sc.exe, is there a way to run
sc.exe at boot time without having to connect?
Re: start service with parameters on restart
A good method would be to show a small amount of appreciation
for the assistance you have received so far from a total stranger,
instead of showering him with criticism. Sometimes a little extra
effort is required to find a workable solution, which requires a degree
of good will and tolerance from both sides.
Since your expectations are quite high, I recommend that you lodge
a call with Microsoft. For a moderate fee an engineer will help you
solve your problem, with a guaranteed outcome.
Re: start service with parameters on restart
pointing out that your solutions do not work is not showering you with
criticism.
i have not criticised you at all.
it's now the end of day two and we still don't have anything near an answer.
what, apart from your time, do i have to be thankful to you for?
how, exactly, have you helped me?
in fact, by taking a thread for which you don't know the answer you've
potentially stopped someone who does from providing a solution.
Re: start service with parameters on restart
To me the phrase "your explanation of why it didn't work was a load of
rubbish" would well fall under the definition of "criticism". You don't
have to be thankful for anything but seeing that you're in a demanding
rather than a cooperative mood, I will not volunteer any more of my time
in trying to find a satisfactory solution to your problem. Good luck!