当前位置 : 主页 > 编程语言 > c语言 >

通过C#的Process启动Nginx

来源:互联网 收集:自由互联 发布时间:2021-06-25
背景:因为一个特殊的需求,需要在WPF程序中嵌入Nginx,并能通过WPF启动停止Nginx服务。直接Process.Strat("nginx.exe",path);无法正常启动,折腾半天找到的一条方法,记录分享。 1 private void

背景:因为一个特殊的需求,需要在WPF程序中嵌入Nginx,并能通过WPF启动停止Nginx服务。直接Process.Strat("nginx.exe",path);无法正常启动,折腾半天找到的一条方法,记录分享。

 1 private void LaunchNginx()
 2         {
 3             try
 4             {
 5                 ProcessStartInfo info = new ProcessStartInfo();
 6                 info.FileName = "cmd.exe";
 7                 info.UseShellExecute = false;
 8                 info.RedirectStandardInput = true;
 9                 info.RedirectStandardOutput = true;
10                 info.CreateNoWindow = true;
11                 Process p = new Process();
12                 p.StartInfo = info;
13                 p.Start();
14                 //p.PriorityClass = ProcessPriorityClass.RealTime;
15                 string cmdStr = "cd " + System.AppDomain.CurrentDomain.BaseDirectory + "nginx-1.16.0";
16                 cmdStr = cmdStr.Replace("\\", "\\\\");
17                 p.StandardInput.WriteLine(cmdStr);
18                 //cmd启动程序
19                 p.StandardInput.WriteLine("nginx.exe");
20                 //Thread.Sleep(2000);
21                 p.StandardInput.WriteLine("exit");
22             }
23             catch (Exception ex)
24             {
25                 //throw;
26                 Logger.WriteToError(ex, "Nginx服务启动失败");
27             }
28 
29         }

如图Nginx起来了~

网友评论