C# 控制台服务 调用cmd命令 重启重启重启 服务器上的指定windows服务
先贴核心重启服务命令(没错先停止 再开启 合并成一句话用 & 连接)
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