Exemplo n.º 1
0
        public static DaemonProcessMonitor Start(DaemonProcess process, ILogger logger = null)
        {
            logger = logger ?? Log.Default;
            logger.AddEntry("Monitoring {0}", process.Name);
            DaemonProcessMonitor result = new DaemonProcessMonitor(process, logger);

            process.StandardOut += (o, a) => logger.Info(((DaemonProcessEventArgs)a).Message);
            process.ErrorOut    += (o, a) => logger.Warning(((DaemonProcessEventArgs)a).Message);
            process.Start(result.TryRestart);
            return(result);
        }
 private void StartProcess(DaemonProcess process)
 {
     try
     {
         string key = process.ToString();
         Logger.AddEntry("Starting {0}", key);
         process.Subscribe(Logger);
         _monitors.Add(key, DaemonProcessMonitor.Start(process));
     }
     catch (Exception ex)
     {
         Logger.AddEntry("Error starting process {0}: {1}", ex, process?.ToString(), ex.Message);
     }
 }