C#后台启动influxdb2.x

在win10系统下,使用c#,通过后台调用cmd窗口,启动influxdb2.x数据库

/// <summary>
/// 执行cmd命令,无返回,无窗口
/// </summary>
/// <param name="dir">启动目录</param>
/// <param name="cmd">命令</param>
public static void Execute(string cmd, string ? dir = null)
{
    try
    {
        if (dir != null && !Directory.Exists(dir))
        {
            return;
        }

        var processInfo = new ProcessStartInfo("cmd.exe", cmd)
        {
            CreateNoWindow = true,
            UseShellExecute = true,
            WindowStyle = ProcessWindowStyle.Hidden
        };
        if (dir != null)
        {
            processInfo.WorkingDirectory = dir;
        }
        Process.Start(processInfo);
    }
    catch (Exception) {}
}

public static void Start()
{
    // 数据库软件路径
    string path = "D:\\influxdb\\bin\\influxd.exe";

    // 确保只有一个软件在后台运行
    List<Process> HadRunProcess = new(Process.GetProcesses().Where((x) = > x.ProcessName == "influxd").OrderBy((x) = > x.StartTime));
    if (HadRunProcess.Count == 0)
    {
        if (System.IO.File.Exists(path))
        {
            // 通过cmd启动软件
            Execute("/C influxd", System.IO.Path.GetDirectoryName(path));
        }
        else
        {
            MessageBox.Show("文件不存在 " + path);
        }
    }
    else
    {
        MessageBox.Show("influxd.exe 已运行");
    }
}

更多推荐