Пример #1
0
        private static bool Handler(SignalControlType signal)
        {
            const string errorMessage = @"Exiting chocolatey abnormally. Please manually clean up anything that 
 was not finished.";

            switch (signal)
            {
            case SignalControlType.CTRL_SHUTDOWN_EVENT:
                break;

            case SignalControlType.CTRL_C_EVENT:
            case SignalControlType.CTRL_CLOSE_EVENT:
                "chocolatey".Log().Error(ChocolateyLoggers.Important, errorMessage);
                "chocolatey".Log().Error("Please do not ever use Control+C or close the window to exit.");
                break;

            default:
                "chocolatey".Log().Error(ChocolateyLoggers.Important, errorMessage);
                break;
            }

            Environment.Exit(-1);

            return(true);
        }
Пример #2
0
        private static bool Handler(SignalControlType signal)
        {
            "shim".log(() => "Caught signal. Stopping running process");
            var process = CommandExecutor.RunningProcess;

            //sigint before kill - https://gist.github.com/jvshahid/6fb2f91fa7fb1db23599
            // http://stackoverflow.com/a/15281070/18475
            // http://stanislavs.org/stopping-command-line-applications-programatically-with-ctrl-c-events-from-net/

            var exitCode = -1;

            try
            {
                //if (process != null && !process.HasExited) process.CloseMainWindow();
                if (process != null && !process.HasExited)
                {
                    process.Kill();
                }
                exitCode = process != null && process.HasExited ? process.ExitCode : exitCode;
            }
            catch
            {
                //move on
            }

            Environment.Exit(exitCode);

            return(true);
        }
Пример #3
0
        private static bool Handler(SignalControlType signal)
        {
            const string errorMessage = @"Exiting chocolatey abnormally. Please manually clean up anything that 
 was not finished.";
            switch (signal)
            {
                case SignalControlType.CTRL_SHUTDOWN_EVENT:
                    break;
                case SignalControlType.CTRL_C_EVENT:
                case SignalControlType.CTRL_CLOSE_EVENT:
                    "chocolatey".Log().Error(ChocolateyLoggers.Important, errorMessage);
                    "chocolatey".Log().Error("Please do not ever use Control+C or close the window to exit.");
                    break;
                default:
                    "chocolatey".Log().Error(ChocolateyLoggers.Important, errorMessage);
                    break;
            }

            Environment.Exit(-1);

            return true;
        }