github.com/gogf/gf@v1.16.9/.example/os/gproc/gproc_comm.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os" 6 "time" 7 8 "github.com/gogf/gf/os/glog" 9 "github.com/gogf/gf/os/gproc" 10 "github.com/gogf/gf/os/gtime" 11 "github.com/gogf/gf/os/gtimer" 12 ) 13 14 func main() { 15 fmt.Printf("%d: I am child? %v\n", gproc.Pid(), gproc.IsChild()) 16 if gproc.IsChild() { 17 gtimer.SetInterval(time.Second, func() { 18 if err := gproc.Send(gproc.PPid(), []byte(gtime.Datetime())); err != nil { 19 glog.Error(err) 20 } 21 }) 22 select {} 23 } else { 24 m := gproc.NewManager() 25 p := m.NewProcess(os.Args[0], os.Args, os.Environ()) 26 p.Start() 27 for { 28 msg := gproc.Receive() 29 fmt.Printf("%d: receive from %d, data: %s\n", gproc.Pid(), msg.SendPid, string(msg.Data)) 30 } 31 } 32 }