From 8cdc6da20b3c53fa20fb02108465c3dbff74c64d Mon Sep 17 00:00:00 2001 From: John Luo Date: Fri, 26 Feb 2016 12:41:54 -0800 Subject: [PATCH] Fix how processes are killed on Linux --- .../Deployers/ApplicationDeployer.cs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/Microsoft.AspNetCore.Server.Testing/Deployers/ApplicationDeployer.cs b/src/Microsoft.AspNetCore.Server.Testing/Deployers/ApplicationDeployer.cs index b6c2589da1..bf1bec300d 100644 --- a/src/Microsoft.AspNetCore.Server.Testing/Deployers/ApplicationDeployer.cs +++ b/src/Microsoft.AspNetCore.Server.Testing/Deployers/ApplicationDeployer.cs @@ -27,7 +27,6 @@ namespace Microsoft.AspNetCore.Server.Testing private readonly Stopwatch _stopwatch = new Stopwatch(); - public ApplicationDeployer(DeploymentParameters deploymentParameters, ILogger logger) { DeploymentParameters = deploymentParameters; @@ -127,26 +126,34 @@ namespace Microsoft.AspNetCore.Server.Testing private void KillProcess(int processId) { - ProcessStartInfo startInfo; - if (IsWindows) { - startInfo = new ProcessStartInfo + var startInfo = new ProcessStartInfo { FileName = "taskkill", Arguments = $"/T /F /PID {processId}", }; + var killProcess = Process.Start(startInfo); + killProcess.WaitForExit(); } else { - startInfo = new ProcessStartInfo + var killSubProcessStartInfo = new ProcessStartInfo { FileName = "pkill", Arguments = $"-TERM -P {processId}", }; + var killSubProcess = Process.Start(killSubProcessStartInfo); + killSubProcess.WaitForExit(); + + var killProcessStartInfo = new ProcessStartInfo + { + FileName = "kill", + Arguments = $"-TERM {processId}", + }; + var killProcess = Process.Start(killProcessStartInfo); + killProcess.WaitForExit(); } - var killProcess = Process.Start(startInfo); - killProcess.WaitForExit(); } protected void AddEnvironmentVariablesToProcess(ProcessStartInfo startInfo)