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  }