diff --git a/ServiceDeamon/App.config b/ServiceDeamon/App.config index 8780b642..75622970 100644 --- a/ServiceDeamon/App.config +++ b/ServiceDeamon/App.config @@ -1,6 +1,7 @@  - + + \ No newline at end of file diff --git a/ServiceDeamon/CheckServiceHelper.cs b/ServiceDeamon/CheckServiceHelper.cs index 9b489d19..0ba70891 100644 --- a/ServiceDeamon/CheckServiceHelper.cs +++ b/ServiceDeamon/CheckServiceHelper.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Configuration; using System.Linq; using System.ServiceProcess; using System.Text; @@ -11,18 +12,24 @@ namespace ServiceDeamon { private static ServiceController servCtl; + private static string ServName = ConfigurationManager.AppSettings["ServiceName"]; - public static void CheckStatus(string servName) + public static void CheckStatus() { - if (servCtl == null || servCtl.ServiceName != servName) + if (servCtl == null || servCtl.ServiceName != ServName) { - servCtl = new ServiceController(servName); + servCtl = new ServiceController(ServName); } + Console.WriteLine($"服务 {ServName} 的当前状态:{servCtl.Status}"); + if (servCtl != null && servCtl.Status == ServiceControllerStatus.Stopped) { + Console.WriteLine($"服务已停止,自动启动:{ServName}"); servCtl.Start(); } + + //Console.WriteLine("CheckStatus"); } } } diff --git a/ServiceDeamon/Program.cs b/ServiceDeamon/Program.cs index 064ff175..b4760fc8 100644 --- a/ServiceDeamon/Program.cs +++ b/ServiceDeamon/Program.cs @@ -2,12 +2,26 @@ using System.Configuration; using System.ServiceProcess; -var servName = ConfigurationManager.AppSettings["ServiceName"]; +public class Program +{ + private static Timer timer; -//Timer t = new System.Threading.Timer((sta) => -//{ -// CheckServiceHelper.CheckStatus(servName); -//}); + private static int CheckInteval = Convert.ToInt32(ConfigurationManager.AppSettings["CheckInteval"]); -//t.Change(1000,) + public static void Main(string[] args) + { + timer = new Timer(new TimerCallback(CheckSta)); + timer.Change(CheckInteval, Timeout.Infinite); + + + Console.Read(); + } + + private static void CheckSta(object sta) + { + CheckServiceHelper.CheckStatus(); + + timer.Change(CheckInteval, Timeout.Infinite); + } +} diff --git a/ServiceDeamon/ServiceDeamon.csproj b/ServiceDeamon/ServiceDeamon.csproj index 9af9c439..ffa42eaf 100644 --- a/ServiceDeamon/ServiceDeamon.csproj +++ b/ServiceDeamon/ServiceDeamon.csproj @@ -8,7 +8,9 @@ + +