private static void RunBatch()
        {
            Task.Run(() =>
            {
                while (true)
                {
                    try
                    {
                        var now = DateTime.Now;
                        //var nowMin = now.TimeOfDay.TotalMinutes;

                        foreach (var service in __services)
                        {
                            var serviceName = service.Key;
                            var serviceInfo = __services[serviceName];

                            if (serviceInfo.LastStartTime == DateTime.MinValue ||
                                (now - serviceInfo.LastStartTime).TotalMinutes > serviceInfo.RebootFrequency)
                            {
                                Print($"Stopping service {serviceName}");
                                __services[service.Key].LastStartTime = now;
                                WinServiceHelper.StopService(serviceName);

                                var counter = 0;
                                while (counter <= 100)
                                {
                                    if (WinServiceHelper.ServiceStatus(serviceName) == ServiceControllerStatus.Stopped)
                                    {
                                        break;
                                    }

                                    counter++;
                                    Thread.Sleep(10 * 1000);
                                }
                                Print($"Starting service {serviceName}");
                                while (true)
                                {
                                    WinServiceHelper.StartService(serviceName);
                                    Thread.Sleep(10 * 1000);
                                    if (WinServiceHelper.ServiceStatus(serviceName) == ServiceControllerStatus.Running)
                                    {
                                        break;
                                    }
                                }


                                Print($"Done :{serviceName}");
                            }
                            else
                            {
                                //	Print($"{serviceName} last start : {serviceInfo.LastStartTime}");
                                //	Print($" {(now-serviceInfo.LastStartTime).TotalMinutes} > {serviceInfo.RebootFrequency} ?");
                                //wait
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Print(ex.Message);
                        _log.Error(ex);
                    }
                    finally
                    {
                        Thread.Sleep(60000);
                    }
                }
            });
        }