嗨我正在處理一個簡單的代碼,它將監視進程並在進程崩潰的情況下重新啓動進程。我寫了一個小樣本代碼。等待非子進程結束
這是我的外部進程
package main
import (
"fmt"
"time"
)
func main() {
for {
time.Sleep(1000 * time.Millisecond)
fmt.Println("hello")
}
}
這是監視它的代碼。
package main
import (
"fmt"
"os"
)
func main() {
p, e := os.FindProcess(<processid>)
fmt.Println(e)
fmt.Println(p.Wait())
fmt.Println("done")
}
這裏的挑戰是,由於第一個過程是不是第二個的子過程,它不會等待而直接退出。 如果有人對此有任何想法,請讓我知道。
謝謝。
您是否嘗試過使用go-ps? https://github.com/mitchellh/go-ps 還是gops? https://github.com/google/gops – pltvs