public void Kill(string project) { //IProjectIntegrator integrator = GetIntegrator(project); //integrator.Abort(); Log.Warning("Kill all child processes."); foreach (ProcessInformation processInfo in ProcessExecutor.RetrieveProcessInformation(project)) { try { Log.Warning(string.Format("Trying to kill process: {0} {1}", processInfo.ProcessName, processInfo.Id)); Project p = GetProjectInstance(project); KillUtil.KillPid(processInfo.Id, p.KillExceptions); Log.Warning(string.Format("The process has been killed: {0} {1}", processInfo.ProcessName, processInfo.Id)); } catch (Exception ex) { Log.Error(string.Format("Error trying to kill process: {0} {1}", processInfo.ProcessName, processInfo.Id)); Log.Error(ex.ToString()); } } ProcessExecutor.ManagedProcesses[project] = new List <Process>(); ProcessExecutor.ManagedProcessInformationListCache[project] = new ThoughtWorks.CruiseControl.Core.Util.ProcessExecutor.CacheItem(DateTime.Now, new ProcessInformationList()); //integrator.WaitForExit(); //integrator.Start(); }
public ProcessInformationList GetProjectProcessInformation(string projectName) { return(ProcessExecutor.RetrieveProcessInformation(projectName)); }