Maison >développement back-end >Golang >Comment puis-je maintenir les processus enfants en cours d'exécution après l'arrêt d'un service Systemd ?

Comment puis-je maintenir les processus enfants en cours d'exécution après l'arrêt d'un service Systemd ?

DDD
DDDoriginal
2024-12-25 16:06:19215parcourir

How Can I Keep Child Processes Running After a Systemd Service Stops?

Systemd : Détachement des processus enfants

Lors du démarrage d'un processus de longue durée à partir du terminal, vous souhaiterez peut-être que les processus enfants persistent même si le le processus principal redémarre ou se termine. Bien que cela soit réalisable avec une exécution manuelle, cela devient problématique lors de l'exécution du processus principal en tant que service systemd.

Dans systemd, la méthode de terminaison par défaut du processus enfant se fait via le groupe de contrôle, ce qui entraîne la fin de tous les processus enfants. à la fin du processus parent. Pour éviter cela, vous pouvez spécifier KillMode=process dans la configuration du service.

Voici comment l'implémenter pour l'exemple donné :

[Unit]
Description=ExecTest

[Service]                        
Type=simple
ExecStart=/home/snowm/src/exectest/exectest
User=snowm
KillMode=process

[Install]
WantedBy=multi-user.target

En définissant KillMode=process, vous demandez à systemd de terminer uniquement le processus principal à la fin du service. Cela permet aux processus enfants de continuer à s'exécuter même après l'arrêt du processus parent.

Veuillez noter que cette approche n'affecte que les processus enfants créés lors de l'exécution du processus principal. Les processus créés auparavant seront toujours terminés à la fin du processus principal.

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
Article précédent:Outil CLI MyTask ToDo...Article suivant:Outil CLI MyTask ToDo...