C# 控制台服务 调用cmd命令 重启重启重启 服务器上的指定windows服务

发布时间 2023-07-25 17:09:31作者: 歌·颂

先贴核心重启服务命令(没错先停止 再开启 合并成一句话用 & 连接)

CMD管理员运行,直接输入下面语句进行重启。

net stop rabbitmq & net start rabbitmq

完整C#代码:

参数 ServiceName 是配置的 重启服务名称(后缀没有.exe,例:RabbitMQ)

Process 命名空间引用:using System.Diagnostics;
          using (Process process = new Process())
                {
                    process.StartInfo.FileName = "cmd.exe";//调用cmd.exe程序
                    process.StartInfo.UseShellExecute = false;
                    process.StartInfo.RedirectStandardInput = true;//重定向标准输入
                    process.StartInfo.RedirectStandardOutput = true;//重定向标准输出
                    process.StartInfo.RedirectStandardError = true;//重定向标准出错
                    process.StartInfo.CreateNoWindow = true;//不显示黑窗口
                    process.Start();//开始调用执行

                    //重启服务:先关闭服务 再开启服务 命令用 & 连接
                    process.StandardInput.WriteLine("net stop "+ ServiceName+" & net start " + ServiceName + "&exit");//标准输入str + "&exit",相等于在cmd黑窗口输入str + "&exit"

                    process.StandardInput.AutoFlush = true;//刷新缓冲流,执行缓冲区的命令,相当于输入命令之后回车执行
                    process.WaitForExit();//等待退出
                    process.Close();//关闭进程

                    //记录重启时间(log4net)
                    //log.Info(ServiceName + "服务重启完成");
                }

 

 

代码参考原文:https://2fwww.dandelioncloud.cn/article/details/1517327376420786178