github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgCmd/testPackage/testCmdParent/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "github.com/bronze1man/kmg/kmgCmd" 6 "os" 7 "os/signal" 8 "syscall" 9 //"time" 10 ) 11 12 func main() { 13 //var exitSignalProcessor func(signal os.Signal) // 只杀掉一层子进程不管用,bash -c 不会传递信号. 14 go func() { 15 kmgCmd.MustRun("kmg go install github.com/bronze1man/kmg/kmgCmd/testPackage/testCmdChildren") 16 cmd := kmgCmd.CmdBash("./bin/testCmdChildren cmd | tee -i /tmp/1.log") 17 //exitSignalProcessor = func(signal os.Signal){ 18 // err := cmd.GetExecCmd().Process.Signal(signal) 19 // if err!=nil{ 20 // panic(err) 21 // } 22 //} 23 cmd.MustRun() 24 fmt.Println("parent Must Run return") 25 }() 26 ch := make(chan os.Signal, 10) 27 signal.Notify(ch, os.Interrupt, os.Kill, syscall.SIGTERM) 28 thisSignal := <-ch 29 fmt.Println("parent", thisSignal) 30 //if exitSignalProcessor!=nil { 31 // exitSignalProcessor(thisSignal) 32 //} 33 }