26f897c1ec
release / release-please (push) Failing after 1m49s
docs / build (push) Failing after 6m34s
release / build-and-upload (arm64, linux) (push) Has been cancelled
release / build-and-upload (arm64, windows) (push) Has been cancelled
release / build-darwin (amd64, darwin) (push) Has been cancelled
release / checksums (push) Has been cancelled
release / finalize (push) Has been cancelled
release / build-darwin (arm64, darwin) (push) Has been cancelled
release / build-and-upload (amd64, linux) (push) Has been cancelled
release / build-and-upload (amd64, windows) (push) Has been cancelled
docs / deploy (push) Has been cancelled
27 lines
490 B
Go
27 lines
490 B
Go
//go:build !windows
|
|
|
|
package agent
|
|
|
|
import (
|
|
"os/exec"
|
|
"syscall"
|
|
)
|
|
|
|
func configureManagedServerCmd(cmd *exec.Cmd) {
|
|
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
|
|
}
|
|
|
|
func signalManagedProcess(cmd *exec.Cmd, force bool) error {
|
|
if cmd == nil || cmd.Process == nil {
|
|
return nil
|
|
}
|
|
sig := syscall.SIGTERM
|
|
if force {
|
|
sig = syscall.SIGKILL
|
|
}
|
|
if pgid, err := syscall.Getpgid(cmd.Process.Pid); err == nil {
|
|
return syscall.Kill(-pgid, sig)
|
|
}
|
|
return cmd.Process.Signal(sig)
|
|
}
|