// Kill the process public void KillProcess() { KillUtil.KillPid(process.Id); Log.Info(string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0}: ------------------------------------------------------------------", projectName)); Log.Info(string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0}: ---------The Build Process was successfully aborted---------------", projectName)); Log.Info(string.Format(System.Globalization.CultureInfo.CurrentCulture, "{0}: ------------------------------------------------------------------", projectName)); }
private void Kill(Process process, ProcessInfo processInfo, ProcessReader standardOutput, ProcessReader standardError) { Log.Warning(string.Format("Process timed out: {0} {1}. Process id: {2}. This process will now be killed.", processInfo.FileName, processInfo.Arguments, process.Id)); Log.Debug(string.Format("Process stdout: {0}", standardOutput.Output)); Log.Debug(string.Format("Process stderr: {0}", standardError.Output)); try { KillUtil.KillPid(process.Id); if (!process.WaitForExit(WAIT_FOR_KILLED_PROCESS_TIMEOUT)) { throw new CruiseControlException(string.Format(@"The killed process {0} did not terminate within the allotted timeout period {1}. The process or one of its child processes may not have died. This may create problems when trying to re-execute the process. It may be necessary to reboot the server to recover.", process.Id, WAIT_FOR_KILLED_PROCESS_TIMEOUT)); } Log.Warning(string.Format("The process has been killed: {0}", process.Id)); } catch (InvalidOperationException) { Log.Warning(string.Format("Process has already exited before getting killed: {0}", process.Id)); } Log.Warning(string.Format("The timed out process has been killed: {0}", process.Id)); }
private void Kill() { const int waitForKilledProcessTimeout = 10000; Log.Debug(string.Format(System.Globalization.CultureInfo.CurrentCulture, "Sending kill to process {0} and waiting {1} seconds for it to exit.", process.Id, waitForKilledProcessTimeout / 1000)); CancelEventsAndWait(); try { KillUtil.KillPid(process.Id); if (!process.WaitForExit(waitForKilledProcessTimeout)) { throw new CruiseControlException( string.Format(CultureInfo.CurrentCulture, @"The killed process {0} did not terminate within the allotted timeout period {1}. The process or one of its child processes may not have died. This may create problems when trying to re-execute the process. It may be necessary to reboot the server to recover.", process.Id, waitForKilledProcessTimeout)); } Log.Warning(string.Format(System.Globalization.CultureInfo.CurrentCulture, "The process has been killed: {0}", process.Id)); } catch (InvalidOperationException) { Log.Warning(string.Format(System.Globalization.CultureInfo.CurrentCulture, "Process has already exited before getting killed: {0}", process.Id)); } }