Exécuter la commande dans Golang et la détacher du processus
Ce problème survient lorsque vous devez exécuter un processus de longue durée dans Golang, avec exigences spécifiques telles que :
Votre tentative de solution en utilisant Cmd.Start() et Cmd.Wait() remplit la plupart de ces exigences, à l'exception d'empêcher le processus sous-jacent de planter lorsque vous envoyez SIGTERM/SIGKILL à votre programme.
Solution
Au lieu d'essayer de réinventer la roue, envisagez d'utiliser l'une des bibliothèques suivantes :
Bibliothèque Go-reap
Une solution recommandée consiste à utiliser la bibliothèque https://github.com/hashicorp/go-reap.
Notes
Avis de non-responsabilité
La solution fournie se concentre sur la résolution du problème consistant à empêcher le sous-processus de devenir un zombie. Pour une solution complète répondant à toutes les exigences, une combinaison d’approches peut être nécessaire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!