Maison >développement back-end >Golang >Comment puis-je maintenir les processus enfants en cours d'exécution après la sortie du processus parent géré par Systemd ?

Comment puis-je maintenir les processus enfants en cours d'exécution après la sortie du processus parent géré par Systemd ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-27 19:40:14209parcourir

How Can I Keep Child Processes Running After the Systemd-Managed Parent Process Exits?

Impossible de détacher le processus enfant lorsque le processus principal est démarré à partir de Systemd

Lors de l'exécution d'un processus principal qui génère des processus enfants, il est souhaitable de faire en sorte que les processus enfants survivent même si le processus principal redémarre ou meurt. Ce comportement fonctionne comme prévu lors de l'exécution du processus principal à partir d'un terminal, comme démontré dans l'exemple fourni avec le programme exectest.

Cependant, lorsque le processus principal est démarré via Systemd à l'aide d'un fichier de service, les processus enfants le font ne survivent pas au-delà de la durée de vie du processus principal. Cela se produit parce que Systemd gère les processus dans un groupe de contrôle et, par défaut, il nettoie tous les processus enfants à la fin du processus parent.

Pour résoudre ce problème, le paramètre KillMode dans la définition du service Systemd peut être modifié. Par défaut, KillMode est défini sur control-group, mais le changer en process garantira que seul le processus principal est tué, permettant à ses processus enfants de continuer à s'exécuter.

Le fichier de service mis à jour inclurait la ligne suivante :

KillMode=process

Avec ce paramètre en place, les processus enfants d'exectest survivront même lorsque le processus principal est arrêté ou redémarré via Systemd.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn