public bool HandleUnmonitoredProcesses() { try { var processes = Process.GetProcessesByName(ApplicationName); foreach (var process in processes) { if (ProcessHandlers.All(procHandle => procHandle.Process == null || procHandle.Process.Id != process.Id)) { // This process o var processHandler = new ProcessHandler { WaitForExit = false, NonResponsiveInterval = NonResponsiveInterval, }; processHandler.MonitorProcess(process); ProcessHandlers.Add(processHandler); } // Perform } } catch (Exception ex) { Logger.Warn("Error while starting to monitor application {0}: {1}", ApplicationName, ex.Message); //Debug.WriteLine(ex.Message); } return(true); }
private void HandleProcessNotRunning() { var processes = Process.GetProcessesByName(ApplicationName); if (processes.Length == 0) { // Start new process var processHandler = new ProcessHandler { WaitForExit = false, NonResponsiveInterval = NonResponsiveInterval, StartingInterval = StartupMonitorDelay }; Logger.Info("No process of application {0} is running, so one will be started", ApplicationName); processHandler.CallExecutable(ApplicationPath, ""); ProcessHandlers.Add(processHandler); } }