build: split os syscall
							parent
							
								
									f039033077
								
							
						
					
					
						commit
						556f673b3e
					
				
							
								
								
									
										14
									
								
								muzan.go
								
								
								
								
							
							
						
						
									
										14
									
								
								muzan.go
								
								
								
								
							|  | @ -77,7 +77,7 @@ func (oni *Oni) Start() error { | |||
| 	} | ||||
| 	var err error | ||||
| 	cmd := exec.Command(oni.Cmd, oni.Args...) | ||||
| 	cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} | ||||
| 	setgpid(cmd) | ||||
| 	cmd.Env = oni.Envs | ||||
| 	cmd.Dir = oni.Dir | ||||
| 	var out io.Writer | ||||
|  | @ -111,18 +111,6 @@ func (oni *Oni) Stop() error { | |||
| 	return oni.cmd.Process.Signal(syscall.SIGTERM) | ||||
| } | ||||
| 
 | ||||
| func (oni *Oni) Kill() error { | ||||
| 	if oni.cmd == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	pgid, err := syscall.Getpgid(oni.cmd.Process.Pid) | ||||
| 	if err == nil { | ||||
| 		return syscall.Kill(-pgid, 15) // note the minus sign
 | ||||
| 	} | ||||
| 	return oni.cmd.Process.Kill() | ||||
| 	// return oni.cmd.Process.Kill()
 | ||||
| } | ||||
| 
 | ||||
| func (oni *Oni) end(v interface{}) { | ||||
| 	if v == nil { | ||||
| 		oni.StateChange(ENDED) | ||||
|  |  | |||
|  | @ -0,0 +1,24 @@ | |||
| //go:build !windows
 | ||||
| // +build !windows
 | ||||
| 
 | ||||
| package configui | ||||
| 
 | ||||
| import ( | ||||
| 	"os/exec" | ||||
| 	"syscall" | ||||
| ) | ||||
| 
 | ||||
| func setgpid(cmd *exec.Cmd) { | ||||
| 	cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} | ||||
| } | ||||
| 
 | ||||
| func (oni *Oni) Kill() error { | ||||
| 	if oni.cmd == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	pgid, err := syscall.Getpgid(oni.cmd.Process.Pid) | ||||
| 	if err == nil { | ||||
| 		return syscall.Kill(-pgid, 15) // note the minus sign
 | ||||
| 	} | ||||
| 	return oni.cmd.Process.Kill() | ||||
| } | ||||
|  | @ -0,0 +1,13 @@ | |||
| package configui | ||||
| 
 | ||||
| import "os/exec" | ||||
| 
 | ||||
| func setgpid(cmd *exec.Cmd) { | ||||
| } | ||||
| 
 | ||||
| func (oni *Oni) Kill() error { | ||||
| 	if oni.cmd == nil { | ||||
| 		return nil | ||||
| 	} | ||||
| 	return oni.cmd.Process.Kill() | ||||
| } | ||||
		Loading…
	
		Reference in New Issue