Re: un petit script
Philippe Monroux <ph.monroux@wanadoo.fr> writes:
> /usr/game/fortune > /home/phi/signature # /home/phi/signature
> est un tube nommé
> Et quand je le lance par :/home/phi/bin/signature.sh, signature.sh
> est lancé deux fois....
> Ca vient du tube. Car si je supprime le tube signature avant de lancer
> le script puis que je le relance, il n'y a plus qu'un process.
> C'est à priori un comportement normal.
Le shell fait un fork pour lancer fortune via execve et redirige la
"sortie" de ce fork vers /home/phi/signature.
Si /home/phi/signature n'existe pas, il est créé avec le résultat de
la commande fortune, tu ne vois pas de "double script" car tu n'en as
pas le temps.
Si /home/phi/signature est un tube nommé le fork attend que ce tube
soit ouvert "des deux côtés" pour lancer fortune : tu as tout le temps
de voir un "double script" avec ps dans l'intervalle, l'execve lançant
fortune n'a pas encore été fait, le fork si.
A part cette notion de "temps passé", il n'y a aucune différence du
point de vue du script et de fortune entre les deux situations.
Jean Charles
--
Jean Charles Delépine - Équipe Réseaux Télécoms - Université de Picardie
Reply to: