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!