github.com/immortal/immortal@v0.0.0-20240201195854-d8073cd41019/watchpid_linux.go (about) 1 // +build linux 2 3 package immortal 4 5 import ( 6 "fmt" 7 "os" 8 "time" 9 ) 10 11 // WatchPid check pid changes 12 func (d *Daemon) WatchPid(pid int, ch chan<- error) { 13 if !d.IsRunning(pid) { 14 ch <- fmt.Errorf("PID NOT FOUND") 15 return 16 } 17 18 for { 19 if _, err := os.Stat(fmt.Sprintf("/proc/%d", pid)); err != nil { 20 ch <- fmt.Errorf("EXIT") 21 return 22 } 23 time.Sleep(time.Second) 24 } 25 }