Browse Source

update RunCmd

Matthew R. Kasun 3 years ago
parent
commit
e88d34ac96
1 changed files with 6 additions and 2 deletions
  1. 6 2
      netclient/ncutils/netclientutils_freebsd.go

+ 6 - 2
netclient/ncutils/netclientutils_freebsd.go

@@ -27,8 +27,12 @@ func RunCmd(command string, printerr bool) (string, error) {
 	cmd := exec.Command(args[0], args[1:]...)
 	cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
 	go func() {
-		<-ctx.Done()
-		_ = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
+		select {
+		case <-ctx.Done():
+			_ = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
+		case <-time.After(time.Second * 2):
+			_ = syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
+		}
 	}()
 	cmd.Wait()
 	out, err := cmd.CombinedOutput()