Bonjour a tous,
Je cherche a rediriger la sortie de la commande tail -f "nom_fichier" lancé par un processus fils vers l'entrer standard du processus père.
Objectif : récupérer en temps réel les modifications périodique de ce fichier.
Problème : je parviens avec le code suivant a rediriger la sortie de la commande tail vers l'entrée standard du processus père. Si je tape "tail -2 /usr/local/sbin/trace.txt", cela fonctionne toujours mais si je tape "tail -f /usr/local/sbin/trace.txt" alors le processus père reste bloqué en lecture, il ne reçoit pas la sorite de la commande.
rd, wr = IO.pipe
if fork
# fork renvoi un entier > 0 processus pere
wr.close
puts "Je suis le processus pere\n"
$stdin.reopen(rd)
printf($stdout, "#{rd.read} \n")
rd.close
else
# fork renvoi 0, code du fils
rd.close
$stdout.reopen(wr)
exec "tail /usr/local/sbin/trace.txt"
wr.close
end
toutes remarques seraient les bienvenues.
Merci
# popen
Posté par Pascal Terjan (site web personnel) . Évalué à 2.
[^] # Re: popen
Posté par smiley35700 . Évalué à 1.
[^] # ça marche !
Posté par smiley35700 . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.