On Mar 12 23:09, nlian wrote: > > Hi, > > I want to write a simple script to start and stop windows service remotely. > Here is the script: > > #!/usr/bin/bash > sc \\\\servername start "MyService" > echo $? > > ======= > The above script return the following messages: > [SC] StartService: OpenService FAILED 1060: > > The specified service does not exist as an installed service. > > 0 > ======= > > What I don't understand is why $? return 0 and not 1060 or any other > error code. I want to capture the error code returned from windows program > How to do this in Cygwin? Please advise.
What you get is the exit value from the sc command. Sc returns 0. What sc prints is the error code it got from the service manager API. It's a pity that sc doesn't return a useful exit code but there's nothing Cygwin can do about the exit codes of Windows tools. `net start MyService' returns an exit code of 2, Cygwin's `cygrunsrv -S MyService' returns 1. Unfortunately both tools are not capabale to start services on a remote server. What you can do is something along the lines of sc \\\\servername start "MyService" | grep -q START echo $? 1 Nothing keeps you from evaluating the output of the sc command in any elaborate way you can think of. Think grep, sed, awk, ... Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/