こんにちは私は、プロセスを監視し、プロセスがクラッシュした場合にプロセスを再起動する簡単なコードに取り組んでいます。私は小さなサンプルコードを書いています。子なしのプロセスが終了するまで待つ
これは、これはそれを監視するコードである私の外部プロセス
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")
}
ここでの課題は、最初のプロセスが第二1の子プロセスではないので、それは待って直接出ていないということです。 誰かがこれについてのアイディアを持っているかどうか教えてください。
ありがとうございました。
go-psを試しましたか? https://github.com/mitchellh/go-ps またはgops? https://github.com/google/gops – pltvs