30 lines
467 B
Go
30 lines
467 B
Go
|
// +build linux
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
// Standard
|
||
|
"os"
|
||
|
"os/exec"
|
||
|
"syscall"
|
||
|
)
|
||
|
|
||
|
func run(cmd *CommandSet) error {
|
||
|
screen.Fini()
|
||
|
c := exec.Command("/bin/bash", "-c", lastExecutableCommand.Exec)
|
||
|
if lastExecutableCommand.Inplace {
|
||
|
c.Stdin = os.Stdin
|
||
|
c.Stdout = os.Stdout
|
||
|
c.Stderr = os.Stderr
|
||
|
if err := c.Run(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
} else {
|
||
|
c.SysProcAttr = &syscall.SysProcAttr{
|
||
|
Setpgid: true,
|
||
|
Pgid: 0,
|
||
|
}
|
||
|
c.Start()
|
||
|
}
|
||
|
return nil
|
||
|
}
|