diff --git a/linux.go b/linux.go deleted file mode 100644 index 902ca76..0000000 --- a/linux.go +++ /dev/null @@ -1,48 +0,0 @@ -package main - -import ( - "fmt" - "os" - "os/exec" - "path/filepath" - "syscall" - "time" -) - -func (p *Process) Start() { - command := []string{"/bin/bash", p.shellArgument(), fmt.Sprintf("source \"%s\" 2>/dev/null; %s", filepath.Join(p.Root, ".profile"), p.Command)} - p.cmd = exec.Command(command[0], command[1:]...) - p.cmd.Dir = p.Root - p.cmd.Env = p.envAsArray() - p.cmd.Stdin = p.Stdin - p.cmd.Stdout = p.Stdout - p.cmd.Stderr = p.Stderr - if !p.Interactive { - p.cmd.SysProcAttr = &syscall.SysProcAttr{} - p.cmd.SysProcAttr.Setsid = true - } - p.cmd.Start() -} - -func (p *Process) Signal(signal syscall.Signal) { - if p.Running() { - group, _ := os.FindProcess(-1 * p.Pid()) - group.Signal(signal) - } -} - -func ShutdownProcesses(of *OutletFactory) { - shutdown_mutex.Lock() - of.SystemOutput("shutting down") - for name, ps := range processes { - of.SystemOutput(fmt.Sprintf("sending SIGTERM to %s", name)) - ps.Signal(syscall.SIGTERM) - } - go func() { - time.Sleep(shutdownGraceTime) - for name, ps := range processes { - of.SystemOutput(fmt.Sprintf("sending SIGKILL to %s", name)) - ps.Signal(syscall.SIGKILL) - } - }() -} diff --git a/darwin.go b/unix.go similarity index 95% rename from darwin.go rename to unix.go index 902ca76..55c8db6 100644 --- a/darwin.go +++ b/unix.go @@ -1,5 +1,7 @@ package main +// +build darwin freebsd linux netbsd openbsd + import ( "fmt" "os" diff --git a/windows.go b/windows.go index f7011b3..ee14e3b 100644 --- a/windows.go +++ b/windows.go @@ -1,5 +1,7 @@ package main +// +build windows + import ( "fmt" "os"