Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }