Windows 服务操作

来源:互联网 发布:keynote mac os10.11 编辑:程序博客网 时间:2024/05/05 04:12
 /// <summary>        /// 判断服务是否存在        /// </summary>        /// <param name="serviceName"></param>        /// <returns></returns>        public static bool ServiceIsExisted(string serviceName)        {            ServiceController[] services = ServiceController.GetServices();            foreach (ServiceController s in services)            {                if (s.ServiceName == serviceName)                {                    return true;                }            }            return false;        }        /// <summary>        /// 启动服务        /// </summary>        /// <param name="serviceName"></param>        public static void StartService(string serviceName)        {            if (ServiceIsExisted(serviceName))            {                System.ServiceProcess.ServiceController service = new System.ServiceProcess.ServiceController(serviceName);                if (service.Status != System.ServiceProcess.ServiceControllerStatus.Running && service.Status != System.ServiceProcess.ServiceControllerStatus.StartPending)                {                    service.Start();                    for (int i = 0; i < 60; i++)                    {                        service.Refresh();                        System.Threading.Thread.Sleep(1000);                        if (service.Status == System.ServiceProcess.ServiceControllerStatus.Running)                        {                            break;                        }                        if (i == 59)                        {                            throw new Exception("启动服务:[" + serviceName + "]失败!");                        }                    }                }            }        }        /// <summary>        /// 停止服务        /// </summary>        /// <param name="serviceName"></param>        public static void StopService(string serviceName)        {            if (ServiceIsExisted(serviceName))            {                System.ServiceProcess.ServiceController service = new System.ServiceProcess.ServiceController(serviceName);                if (service.Status == System.ServiceProcess.ServiceControllerStatus.Running)                {                    service.Stop();                    for (int i = 0; i < 60; i++)                    {                        service.Refresh();                        System.Threading.Thread.Sleep(1000);                        if (service.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)                        {                            break;                        }                        if (i == 59)                        {                            throw new Exception("停止服务:[" + serviceName + "]失败!");                        }                    }                }            }        }

0 0
原创粉丝点击