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); }
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); }
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; }