golang cmd执行外部程序
Kill进程及其子进程,以及处在sleep或者阻塞状态中的程序,如果使用cmd.Process.Kill()是没发达到这些效果。
cmd := exec.Command("/bin/sh", "-c", "...........")
// Go会将PGID设置成与PID相同的值
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
eg
package main
import (
"fmt"
"os"
"os/exec"
"syscall"
"time"
)
func main() {
args := []string{
"/bin/bash",
"/Users/joy/src/testGo/test.sh",
"world",
共有 0 条评论