diff --git a/src/Core/ServiceWrapper/Main.cs b/src/Core/ServiceWrapper/Main.cs index 977bc31..e769d4d 100644 --- a/src/Core/ServiceWrapper/Main.cs +++ b/src/Core/ServiceWrapper/Main.cs @@ -513,11 +513,13 @@ namespace winsw } catch (WmiException e) { + Log.Fatal("WMI Operation failure: " + e.ErrorCode, e); Console.Error.WriteLine(e); return (int)e.ErrorCode; } catch (Exception e) { + Log.Fatal("Unhandled exception", e); Console.Error.WriteLine(e); return -1; } @@ -528,17 +530,29 @@ namespace winsw throw new WmiException(ReturnValue.NoSuchService); } + // ReSharper disable once InconsistentNaming + /// + /// Runs the wrapper. + /// + /// Arguments. If empty, WinSW will behave in the service mode. Otherwise - CLI mode + /// Service descriptor. If null, it will be initialized within the method. + /// In such case configs will be loaded from the XML Configuration File. + /// Any unhandled exception public static void Run(string[] _args, ServiceDescriptor descriptor = null) { bool isCLIMode = _args.Length > 0; + + + // If descriptor is not specified, initialize the new one (and load configs from there) var d = descriptor ?? new ServiceDescriptor(); - - // Configure the wrapper-internal logging - // STDIN and STDOUT of the child process will be handled independently + + // Configure the wrapper-internal logging. + // STDIN and STDOUT of the child process will be handled independently. InitLoggers(d, isCLIMode); - if (isCLIMode) // CLI mode + + if (isCLIMode) // CLI mode, in-service mode otherwise { Log.Debug("Starting ServiceWrapper in CLI mode");