| 
									
										
										
										
											2019-07-03 02:11:50 -06:00
										 |  |  | package runner | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2019-07-10 01:16:45 -06:00
										 |  |  | 	"fmt" | 
					
						
							| 
									
										
										
										
											2019-07-03 02:11:50 -06:00
										 |  |  | 	"os/exec" | 
					
						
							| 
									
										
										
										
											2019-07-10 01:16:45 -06:00
										 |  |  | 	"strconv" | 
					
						
							| 
									
										
										
										
											2019-07-03 03:04:28 -06:00
										 |  |  | 	"syscall" | 
					
						
							| 
									
										
										
										
											2019-07-03 02:11:50 -06:00
										 |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-03 03:04:28 -06:00
										 |  |  | func backgroundCmd(cmd *exec.Cmd) { | 
					
						
							|  |  |  | 	cmd.SysProcAttr = &syscall.SysProcAttr{HideWindow: true} | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2019-07-10 01:16:45 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | func kill(pid int) error { | 
					
						
							|  |  |  | 	// Kill the whole processes tree (all children and grandchildren) | 
					
						
							|  |  |  | 	cmd := exec.Command("taskkill", "/pid", strconv.Itoa(pid), "/T", "/F") | 
					
						
							|  |  |  | 	b, err := cmd.CombinedOutput() | 
					
						
							|  |  |  | 	if nil != err { | 
					
						
							|  |  |  | 		return fmt.Errorf("%s: %s", err.Error(), string(b)) | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	return nil | 
					
						
							|  |  |  | } |