Bonjour, Je travaille sur un code simple qui surveille un processus et redémarre le processus au cas où le processus se bloque. J'ai écrit un petit exemple de code.Attendre la fin d'un processus non-fils
Ceci est mon processus externe
package main
import (
"fmt"
"time"
)
func main() {
for {
time.Sleep(1000 * time.Millisecond)
fmt.Println("hello")
}
}
Ceci est le code qui le surveille.
package main
import (
"fmt"
"os"
)
func main() {
p, e := os.FindProcess(<processid>)
fmt.Println(e)
fmt.Println(p.Wait())
fmt.Println("done")
}
Le défi est ici que depuis le premier processus est pas un processus enfant du second, il n'attend pas et sort directement. S'il vous plaît laissez-moi savoir si quelqu'un a des idées à ce sujet.
Merci.
Avez-vous essayé d'utiliser go-ps? https://github.com/mitchellh/go-ps Ou gops? https://github.com/google/gops – pltvs