Fwd: Re: cron pour lancer un gros et long process?
Oups desole, j'ai pas fait attention et envoye ma reponse non pas sur la
liste, mais a Pierre Habouzit.
---------- Forwarded Message ----------
Subject: Re: cron pour lancer un gros et long process?
Date: Tuesday 23 March 2004 19:46
From: Gurvan Huiban
To: Pierre Habouzit
On Tuesday 23 March 2004 16:40, Pierre Habouzit wrote:
> * * * * * (binaire_que_tu_veux_lancer 1> ficher de log) &
>
> dans le pire des cas, si ca ne marche pas, deux possibilités :
> 1/ tu maitrises les sources du programme en question (ie c'est un
> programme que tu écris toi) dans ce cas ajoutes des options au dit
> programme du genre un '-d' pour daemonize qui fait le fork adequat.
Euh. Non, je ne maitrise pas les sources...
> 2/ les sources sont pas gérées par toi, alors crée juste un script bash
> qui contient : (binaire_que_tu_veux_lancer 1> fichier_de_log) &
>
> et lance le depuis cron.
C'est ce que je fais (solution 2). Et c'est dans ce cas que j'ai le probleme
decrit dans mon mail original, a savoir que j'ai un processus /USR/BIN/CRON
(appartenant a root) qui est cree, et qui reste la jusqu'a ce que le
processus script (qui continue d'exister a l'etat de zombie) meurt (i.e.
lorsque les gros processus se termine).
Je n'ai pas tente la premiere solution mentionnee (mentionnee aussi par
Francois Boisson); parce que je ne connais pas a priori la ligne de commande
a executer. C'est mon script qui constuit la ligne de commande pour appeler
le gros processus.
J'illustre, parce que ca commence a devenir complique.
J'execute prg. Ce programme prend pour argument un fichier .prg
Sauf que je ne connais pas a priori le nom de ce fichier .prg, puisqu'il est
genere par un autre script, avec des noms qui dependent de mon instance de
test. Je ne peux donc pas directement mettre dans ma crontab
prg < input.prg > output.log
J'ai donc ecrit un petit script du genre
cd ${TEST}
for i in `\ls -d` ; do
cd $i
for j in `\ls *.prg` ; do
prg < $j > $i_$j.log &
done
done
Et je voudrais appeler ce script avec cron, que les programmes prg soient
lances avec leurs fichiers d'entree respectifs. Lance dans un terminal ca
fonctionne. Mais lance a partir de cron, j'ai un processus monscript.sh qui
est zombie tant que mes processus prg tournent, et /USR/BIN/CRON qui reste
actif tant que le processus monscript.sh est zombie.
Il faudrait donc que cron lance le script, que ce dernier lance mes instances
de tests puis rende la main sans se zombifier. J'ai essaye de mettre une
entree comme ca dans mon crontab
* * * * * monscript.sh &
Mais j'ai toujours les deux processus mentionnes ci-dessus. Quelqu'un aurait
une bonne idee?
Ou (changons de point de vue): est-ce "grave" d'avoir les deux processus
sus-mentionnes le temps que mon programme prg tourne??
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gurvan Huiban - Ph.D Student
Pos Graduacao UFMG - Belo Horizonte - Brazil
project MASCOTTE INRIA / CNRS / UNSA - Nice - France
-------------------------------------------------------
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Gurvan Huiban
"What about a nice cup of coffee?" (self-citation)
Reply to: