Bonjour,
J'ai fais un petit script qui appel un gros script plusieur fois.
ça donne a peu pres ça:
for deck in `ls /apache/base/plein-de-deck`
do
grosscript >> resultatgros-script &
done
Tout ça dans le but de realisé plein de tache
en parrallele pour reduire le temps de traitement.
Le probleme, c'est comme j'arrete le bousin si un jour
pose probleme?
Le petit script, il se ferme tout de suite, et je ne
peut pas tuer les gros script lancer, parce que je ne
vois que leur commande interne...
Comment fait on dans ce genre de cas...?
Normalement ça doit durer 5~10mn, mais bon, on ne sais jamais.
# PID PPID
Posté par arnaud . Évalué à 2.
Vois-tu ce que je veux dire et est-ce que ça répondrait à tes besoins ?
[^] # Re: PID PPID
Posté par kowalsky . Évalué à 2.
[^] # Re: PID PPID
Posté par arnaud . Évalué à 2.
première réponse:
SAIT : Ecrire un shell-script bash sous GNU/Linux - [Programmation]
La première pré-définie est $$ qui contient le PID du script. ... Par conséquent
si une fonction à l'intérieur d'un script doit accéder à un des paramètres ...
Même pas besoin d'ouvrir le premier lien, la réponse est dans la page de résultat de google, il suffisait juste d'avoir 40s de libre et le"courage" de chercher.
[^] # Re: PID PPID
Posté par kowalsky . Évalué à 2.
Merci bien en tous cas.
[^] # Re: PID PPID
Posté par arnaud . Évalué à 1.
# killall
Posté par gaaaaaAab . Évalué à 2.
Si tu veux faire des trucs plus rafiinés, tu peux aussi regarder du côté de pidof
man killall
man pidof
ouala :)
# Contrôle des processus du shell
Posté par JJD . É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
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.