Le shell offre certains mécanismes de contrôle des processus. Au moins avec bash (pour les autres [ksh, zsh, ...] il faudra vérifier ce que je raconte), il est possible de gérer assez finement ce qui se passe.
Regarde le manuel de bash (ou toute autre aide), et en particulier :
- trap : permet d'intercepter un signal et d'exécuter une action en fonction de ce signal. Tu peux par exemple intercepter le signal SIGTERM (15) pour aller tuer les processus fils
- jobs : cette comande interne permet de récupérer la liste des processus actifs avec leurs ID (jobs -l ou jobs -p)
- kill : pour envoyer un signal à un processus particulier. Essaie d'abord du tuer les fils avec un SIGTERM (15), avant d'envoyer un SIGKILL (9) : ça laissera une chance aux processus de se terminer proprement.
Avec ça tu devrais pouvoir commencer à correctement gérer les processus fils et les arrêts (pas trop) violents.
# Contrôle des processus du shell
Posté par JJD . En réponse au message arrete des scripts lancé par un script. Évalué à 3.
Le shell offre certains mécanismes de contrôle des processus. Au moins avec bash (pour les autres [ksh, zsh, ...] il faudra vérifier ce que je raconte), il est possible de gérer assez finement ce qui se passe.
Regarde le manuel de bash (ou toute autre aide), et en particulier :
- trap : permet d'intercepter un signal et d'exécuter une action en fonction de ce signal. Tu peux par exemple intercepter le signal SIGTERM (15) pour aller tuer les processus fils
- jobs : cette comande interne permet de récupérer la liste des processus actifs avec leurs ID (jobs -l ou jobs -p)
- kill : pour envoyer un signal à un processus particulier. Essaie d'abord du tuer les fils avec un SIGTERM (15), avant d'envoyer un SIGKILL (9) : ça laissera une chance aux processus de se terminer proprement.
Avec ça tu devrais pouvoir commencer à correctement gérer les processus fils et les arrêts (pas trop) violents.
A+
JJD