github.com/gogf/gf@v1.16.9/.example/os/gproc/gproc3.go (about) 1 package main 2 3 import ( 4 "os" 5 "time" 6 7 "github.com/gogf/gf/os/glog" 8 "github.com/gogf/gf/os/gproc" 9 ) 10 11 // 父进程销毁后,使用进程管理器查看存活的子进程。 12 // 请使用go build编译后运行,不要使用IDE运行,因为IDE大多采用的是子进程方式执行。 13 func main() { 14 if gproc.IsChild() { 15 glog.Printf("%d: I am child, waiting 10 seconds to die", gproc.Pid()) 16 //p, err := os.FindProcess(os.Getppid()) 17 //fmt.Println(err) 18 //p.Kill() 19 time.Sleep(2 * time.Second) 20 glog.Printf("%d: 2", gproc.Pid()) 21 time.Sleep(2 * time.Second) 22 glog.Printf("%d: 4", gproc.Pid()) 23 time.Sleep(2 * time.Second) 24 glog.Printf("%d: 6", gproc.Pid()) 25 time.Sleep(2 * time.Second) 26 glog.Printf("%d: 8", gproc.Pid()) 27 time.Sleep(2 * time.Second) 28 glog.Printf("%d: died", gproc.Pid()) 29 } else { 30 p := gproc.NewProcess(os.Args[0], os.Args, os.Environ()) 31 p.Start() 32 glog.Printf("%d: I am main, waiting 3 seconds to die", gproc.Pid()) 33 time.Sleep(3 * time.Second) 34 glog.Printf("%d: died", gproc.Pid()) 35 } 36 }