72 lines
2.5 KiB
C#
72 lines
2.5 KiB
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.ServiceProcess;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
using System.IO;
|
|||
|
|
using COMMON;
|
|||
|
|
|
|||
|
|
namespace SERVER.LIB
|
|||
|
|
{
|
|||
|
|
public class TestingServices
|
|||
|
|
{
|
|||
|
|
public static object lockers = new object();
|
|||
|
|
/// <summary>
|
|||
|
|
/// 检测本机指定服务 仅仅 windows
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="type">0 只是返回状态 1 启动 2 重启 3 停止</param>
|
|||
|
|
/// <param name="name">名字</param>
|
|||
|
|
/// <returns>0 不存在 2 未运行 1 已经运行</returns>
|
|||
|
|
public static int ISok(string name = "", int type = 0)
|
|||
|
|
{
|
|||
|
|
try
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
|
|||
|
|
#region RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
|
|||
|
|
//获取指定服务,若服务状态不是Runing就Start该服务
|
|||
|
|
#pragma warning disable CA1416 // 验证平台兼容性
|
|||
|
|
var server = ServiceController.GetServices().FirstOrDefault(service => service.ServiceName == name);
|
|||
|
|
if (server == null)
|
|||
|
|
{
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
if (type != 0)
|
|||
|
|
{
|
|||
|
|
lock (lockers)
|
|||
|
|
{
|
|||
|
|
string path = Directory.GetCurrentDirectory() + "\\App_Data\\Server";
|
|||
|
|
Directory.CreateDirectory(path);
|
|||
|
|
|
|||
|
|
switch (type)
|
|||
|
|
{
|
|||
|
|
case 1:
|
|||
|
|
if (server.Status != ServiceControllerStatus.Running)
|
|||
|
|
{
|
|||
|
|
File.WriteAllText(path + "\\Server.xcljj", type.ToString());
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
File.WriteAllText(path + "\\Server.xcljj", type.ToString());
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
File.WriteAllText(path + "\\Server.xcljj", type.ToString());
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//开启后再检测一次
|
|||
|
|
return type != 0 ? ISok() : (server.Status == ServiceControllerStatus.Running ? 1 : 2);
|
|||
|
|
#endregion
|
|||
|
|
}
|
|||
|
|
catch (Exception ex)
|
|||
|
|
{
|
|||
|
|
LogHelp.Error("服务操作失败!" + ex.ToString());
|
|||
|
|
return 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|