J'essaie de construire un conteneur de processus. Le conteneur déclenchera d'autres programmes. Par exemple - un script bash qui lance l'exécution de tâches en arrière-plan avec l'utilisation «&».
La caractéristique importante que je recherche est la suivante: lorsque je tue le conteneur, tout ce qui a été généré doit être tué. Pas seulement les enfants directs, mais aussi leurs descendants.
Quand j'ai commencé ce projet, j'ai cru à tort que lorsque vous tuiez un processus, ses enfants étaient automatiquement tués également. J'ai demandé conseil à des gens qui avaient la même idée incorrecte. Bien qu'il soit possible d'attraper un signal et de transmettre la mise à mort aux enfants, ce n'est pas ce que je recherche ici.
Je crois que ce que je veux être réalisable, car lorsque vous fermez un xterm, tout ce qui s'y déroulait est tué à moins qu'il ne soit rien. Cela inclut les processus orphelins. C'est ce que je cherche à recréer.
J'ai une idée que ce que je recherche concerne des sessions Unix.
S'il existait un moyen fiable d'identifier tous les descendants d'un processus, il serait utile de pouvoir également leur envoyer des signaux arbitraires. par exemple SIGUSR1.
SIGHUP
à ses processus enfants directs. Le gestionnaire par défaut du signal de raccrochage interrompt l'exécution du processus, donc la route par défaut est de tuer tous les descendants. En savoir plus sur les processus et les groupes de processus.