Beispiel #1
0
        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));
 }